Tải bản đầy đủ (.pdf) (86 trang)

Điều khiển học lặp (iterative learning control ilc)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.31 MB, 86 trang )

ĐIỀU KHIỂN HỌC LẶP
(ITERATIVE LEARNING CONTROL - ILC)
Nguyễn Doãn Phước (Bản sửa lần 4 - 2021)
Nguyên lý học và điều khiển:
Học để với

u (t )  u r (t ) được y (t )  r (t ) , hoặc ít nhất thì e (t )  r (t )  y (t )  min

Áp dụng cho hệ làm việc theo mẻ u (t )  u k ( ) với t  kT   , 0    T
trạng thái đầu

u (t )
u r (t )

Đối tượng
điều khiển

y (t )
y r (t )  min y (t )  r (t )
u (t )

Nguyên tắc học:
Xác định công thức học lặp: u k 1 ( )  f

l

u

k ( ), y k ( ), t

 với   0,T  , k  0,1,  , N



để có y ( )  r ( )  . Lưu ý: Thường dùng là dạng công thức
N

u k 1 (i )  u k (i )  f l e k (i ) 
1


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

sai

Đưa u k ( ) vào điều khiển
đối tượng và đo y k ( )

Reset
trạng thái
đầu

Kiểm tra

y ( )  r ( )  

Quá trình học

u 0 ( ),    0,T 

Gán k  0


u k 1 ( ) 
Gán k : k  1
u k ( )  f ek ( ), t  Tính u k 1 ( )
l

fl ()

k

đúng
Ghi nhận N

k

u N ( )

Kết thúc quá trình học. Đưa u j ( ), j  N vào điều khiển đối tượng
2


2. Đặc điểm của bộ điều khiển học lặp (ILCler)
lần thử thứ k

uk

ek

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


ek 1

 1   1

T
3


2. Đặ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
u k 1 ( ), e k 1 ( ),

0   T , k  N

u k ( ) Đối tượng

y k ( )

điều khiể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 ( )  u k ( )  f e k (1 ),e k 1 ( 2 ),  ,e k m ( m 1 ), t  , 0    T , 0   i  T
l


Điều khiển học lặp bậc cao có hàm học autonom (dừng):
─ Bậc 2:

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

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





4


2. Đặ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 ( ) để với nó đầu ra y N ( ) tương ứng của hệ
thỏa mãn:

y ( )  r ( )   với mọi   0 và k  N
k
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ẽ ln 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
y  C x



1

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ì ln tồn tại hai ma trận đối xứng xác định dương Q
và P để có:

AT P  PA  Q



PB  C T

Khi đó với mọi hàm r (t ) khả vi cho trước luôn tồn tại u r ( ) để có y r ( )  r ( ) . Những hệ này
được gọi là “khả nghịch”. Điều kiện vừa nêu chỉ là đủ.
5


3. Một số hàm học cơ bản
Hệ không liên tục
với ek (i )  r (i )  y k (i ),

  iTs , 0  Ts  1

1.

u k 1 (i )  u k (i )  Kek (i )

2.


u k 1 (i )  u k (i )  Kek (i  1)

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

4.

u k 1 (i )  u k (i )   k (i )Ke k (i )

5. u k 1 (i )  K1u k (i  1)  K 2 ek (i )  K 3ek (i  1)

Hệ liên tục

d i e k ( )

1. u k 1 ( )  u k ( )  Kek ( )

2. u k 1 ( )  u k ( )  K

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

4. u k 1 ( )  u k ( )   k ( )Kek ( )

dt i



5.

u k 1 ( )  u k ( )  K p e k ( )  K D ek ( )  K I  e k ( )d

0

6. U k 1 (s )  L (s ) U k (s )  K E k (s ) 
6


4. Cài đặt bộ điều khiển học lặp
Thuật toán điều khiển học lặp
Algorithm: Basic ILC control algorithm
1 Khởi tạo: Chọn hàm học f e k ( ),   và tham số hội tụ  cho nó.
l
Chọn bước cập nhật dữ liệu 0  Ts  1 . Tính số bước điều khiển trong một chu kỳ N  T Ts
Gán giá trị ban đầu u (i )  r (i ), e (i )  0, i  0,1,  , N  1
2 while continue the control do
3

for i  0,1,  , N  1 do
Đưa u (i ) vào điều khiển đối tượng trong khoảng thời gian Ts .

4

Đo đầu ra
5

y (i ) . Tính e (i )  r (i )  y (i ) . Gán u (i )  u (i )  fl (e (i ),  )

end for

6 end while


Lưu ý:
‒ Mỗi vòng while-loop là một mẻ làm việc (chu kỳ làm việc, cũng là một lần thử)
‒ Tín hiệu điều khiển là hằng số từng đoạn u (t )  u k (i ) khi kT  iTs  t  kT  (i  1)Ts
7


4. Cài đặt bộ điều khiển học lặp – tiếp
Ví dụ 1: Điều khiển bám với luật học D
Hệ không liên tục có hàm truyền G (z ) 

z  0.5

(để mô phỏng),

2

z  0.7z  0.1

tương đương với y (i )  u (i  1)  0.5u (i  2)  0.7y (i  1)  0.1y (i  2)
Sử dụng hàm học uk 1 (i )  uk (i )  Kek (i  1)

với K  0.5 và N  120 được

2.5

2.5

2

2


1.5

1.5

1

1

0.5
0
-0.5
0

reference
output
20

40

Sau 1 lần học

0.5
0

60

80

100


120

0

reference
output
20

40

Sau 10 lần học

60

80

100

120
8


4. Cài đặt bộ điều khiển học lặp – tiếp
Chương trình minh họa ví dụ 1 (ILCer1)
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');

9


4. Cài đặt bộ điều khiển học lặp – tiếp
Ví dụ 2: Điều khiển bám với luật học PD
Hệ không liên tục có hàm truyền G (z ) 

z  0.2
2

z  1.3z  0.4

(chỉ để mơ phỏng).


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

0.5
0
0

reference
output
20

40


Sau 20 lần học

60

80

100

0.5
0
120 0

reference
output
20

40

Sau 200 lần học

60

80

100

120
10



4. Cài đặt bộ điều khiển học lặp – tiếp
Chương trình minh họa ví dụ 2 (ILCer2)
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');

11


4. Cài đặt bộ điều khiển học lặp – 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
z  1.3z  0.4
ở đầu ra.
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 (i )  uk (i )  K1ek (i )  K 2ek (i  1)
- Thuật PID: uk 1 (i )  uk (i )  K1ek (i  1)  K 2ek (i )  K 3ek (i  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 (lần thử) như sau:

Sau 5 lần hoc

Sau 15 lần hoc

12


4. Cài đặt bộ điều khiển học lặp – tiếp
Chương trình minh họa ví dụ 3 (ILCer3)
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)

13


4. Cài đặt bộ điều khiển học lặp – tiếp
Chương trình minh họa ví dụ 3 (tiếp ILCer3)
%(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.

14


5. Tính hội tụ của q trình 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 ( )  u k ( )  f ek ( ), t  , 0    T
l

u k 1 ( )  u k ( )  f ek ( ),ek 1 ( ),  ,ek m ( ), t 
l

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

u k ( )  u r ( )  arg min r ( )  y k ( )
u

người ta cần tới mơ hình tố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 tố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
T


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



ở bước thử thứ k là:

y k  Gu k

trong đó
15


5. Tính hội tụ của thuật học – tiếp
0
 g0
 g
g0
G 1

 
g
 N 1 gN 2

 0
 yk (0) 
 r (0) 
 ek (0) 
 0
, r  
, e  





 , yk  
k
 









(
1)
(
1)
(
1)
y
N
r
N
e
N
 k




 k

 g 0 

Khi đó, nếu phương trình

r  Gu r

có nghiệm

u r thì sẽ ln tồn tại K cho hàm học:

u k 1  u k  Ke k để quá trình học và chỉnh định thỏa mãn u k  u r
tức là q trình học đó sẽ có tính hội tụ e k  0
2. Mơ hình toán dạng rời rạc

x k (i  1)  Ax k (i )  Bu k (i )

y k (i )  C x k (i )
trong đó iTs   , kT    t với 0  Ts  1 là chu kỳ cập nhật giá trị tín hiệu đủ nhỏ.

16


5. Tính hội tụ của thuật học – tiếp
Cơng thức hàm học: u k 1 (i )  u k (i )  Ke k (i  1)
Kết luận: Sẽ có tính hội tụ


yk ( )  r ( ), 0    T khi k   nếu có

I  CBK  1

Ở hệ liên lục tuyến tính ổn định
Mơ hình tốn và cơng thức hàm học

x k ( )  Ax k ( )  Bu k ( )

y k ( )  C x k ( )



u k 1 ( )  u k ( )  K

d i e k ( t )
d i

i 1
sẽ có tính hội tụ nếu I  CA BK  1

Ở hệ phi tuyến mơ tả bằng tố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 ( )  u k ( )  f l e k ( ), t   u k ( )  f l  r ( )  F (u k ( ), ), t 
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 r ( )  F (u k ( ), ), t   f r ( )  F ( k ( ), ), t    u k ( )   k ( )
l

l


17


5. 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 k ( )  f (x k ( ), t )  B (x k ( ),t )u k ( )



y k ( )  G (x k ( ),t )x k ( )





Công thức hàm học dạng vi phân: u k 1 ( )  u k ( )  L y ( ) ek ( )
k
Kết luận: Sẽ có được tính hội tụ nếu với mọi

x và k ln có:

I  L (y )G (x ,t )B (x ,t )  1
Xác định tham số hàm học theo tiêu chuẩn tối ưu
Ánh xạ vào-ra: u k ( )  y k ( )  f p u k ( ) 
Hàm học:

u k 1 ( )  u k ( )  f l e k ( ),  




Sai lệch bám: e k ( )  r ( )  f p u k ( )   r ( )  f p u k 1 ( )  f l e k 1 ( ),  



*
Tiêu chuẩn tối ưu:   arg min r ( )  f p u k 1 ( )  f l e k 1 ( ),  





18


6. Chọn tham số hội tụ cho hàm học
Chọn tham số cho hàm học từ mơ hình trạng thái
Hàm học P:

u k 1 (i )  u k (i )  Ke k (i )

Hàm học D:

u k 1 (i )  u k (i )  Ke k (i  1)

Chọn I  CBK  1
Chọn I  CBK  1

Hàm học PD: u k 1 (i )  u k (i )  K1e k (i )  K 2e k (i  1)


Chọn I  CBK 2  CBK1  1

Hàm học PID: u k 1 ( )  u k ( )  K1e k (  1)  K 2e k ( )  K 3e k (  1)
Chọn I  CBK 3  CB  K 2  K1   1
Nhận xét: Nếu CB  0 thì khơng tìm được tham số hội tụ từ các điều kiện trên.

Chọn tham số cho hàm học từ mơ hình hàm truyền
Hàm truyền của hệ

b0  b1z    bn z n
G (z ) 
a 0  a1z   an 1z n 1  z n

Hàm học P:

a0  Kb0 ,

 ,an 1  Kbn 1 ,1  Kbn   a 0 ,  , an 1 ,1

Hàm học D:

a0 , a1  Kb0 ,

 , an 1  Kbn  2 ,1  Kbn 1 , Kbn   a 0 ,  , an 1 ,1, 0 
19


6. Chọn tham số hội tụ cho hàm học (tiếp)
Chọn tham số cho hàm học dựa vào mơ hình hàm truyền (tiếp)
Hàm học PD:


a 0  K1b0


 a0 


a

K
b

K
b


1
11
2 0









   an 1 



 an 1  K1bn 1  K 2bn  2 
1


 1 K b  K b

1 n
2 n 1
 0 




K 2bn



Hàm học PID:

K1b0


 0 




a


K
b

K
b
0
0
11
2 0






 a0 
a1  K1b2  K 2b1  K 3b0

  







a  K b  K b  K b 
a 
1 n 1
2 n 2

3 n 3
n 1


 n  2 
 1 
 1  K1bn  K 2bn 1  K 3bn  2 

Lưu ý: Các công thức trên cũng đúng với hàm truyền liên tục
20


6. Chọn tham số hội tụ cho hàm học (tiếp)
Ví dụ 4 : Sử dụng hàm học kiểu PD với tham số hàm học được xác định từ mơ
hình trạng thái
0
dx  1 2 
x


Xét hệ có mơ hình

  u  Ax  Bu và y   2 1 x  C x
dt  1 2 
1
Khi sử dụng công thức chỉnh định với hàm học PD: u k1 ( )  uk ( )  K1 ek ( )  K 2 ek (  1)
ta thấy với K1  0.2, K 2  0.15 chúng thỏa mãn điều kiện hội tụ, vì có
1  CBK 2  CBK1  0.95  1

Hình dưới là kết quả mô phỏng thu được ứng với T  120 s, Ts  0.1s, r( t )  sin  2 t T 


21


6. Chọn tham số hội tụ cho hàm học (tiếp)
Ví dụ 4 : Sử dụng hàm học kiểu PD với tham số hàm học được xác định từ mơ
hình trạng thái (tiếp)
Ở ví dụ này, tín hiệu đặt được chọn là r( t )  sin  t T  . Sau đây là mã nguồn của chương
trình mơ phỏng ILCer4.m.
global A b c uc
A=[-1 2;-1 -2]; b=[0;1]; c=[2;1];
Ts=0.1; T=120; % T is the periodic working time interval
N=T/Ts; K1=0.2; K2=0.15; r=[]; t=[]; y=[]; u=[]; e=[]; r=[];
M=10; % number of learning steps
for i=1:N
t(i)=(i-1)*Ts; r(i)=sin(2*pi/T*t(i)); % create the reference
u(i)=r(i); e(i)=0;
end
for j=1:M
x0=[0;0]; % initial states
for i=1:N
if i==N
u(i)=u(i)+(K1+K2)*e(i);
else
u(i)=u(i)+K1*e(i)+K2*e(i+1); % learning function
end
% còn nữa
22



6. Chọn tham số hội tụ cho hàm học (tiếp)
Ví dụ 4 : Sử dụng hàm học kiểu PD với tham số hàm học được xác định từ mơ
hình trạng thái (tiếp)
% tiếp
uc=u(i);
[ti,z]=ode45(@funILCer4,[0 Ts],x0); % send to the plant
x0=z(length(ti),:)';
y(i)=c'*x0; e(i)=r(i)-y(i); % output tracking error
end
end
plot(t,r,t,y,t,e); legend('reference','output','error');

Chương trình này sử dụng hàm con funILCer4 để khai báo động học đối tượng điều khiển
như sau:
function dx = funILCer4(t,x)
global A b c uc
dx=[A*x+b*uc];
end

Lưu ý: Mơ hình đối tượng chi để mơ phỏng động học cho nó, khơng cần thiết phải có cho
việc thiết kế bộ điều khiển.
23


6. Chọn tham số hội tụ cho hàm học (tiếp)
Ví dụ 5 : Sử dụng hàm học kiểu P với tham số hàm học được xác định từ mơ hình
hàm truyền
b0  b1s
1s


Xét hệ có G (s ) 
, tức là có a 0  6, a1  5, b0  b1  1, b2  0
2
2
6  5s  s
a 0  a1s  s
Hệ số K  5 thỏa mãn điều kiện hội tụ, vì có


a0  b0K

, a1  b1K , 1  b2K  

a0 , a1 , 1   6 , 5 , 1
1 , 0 , 1  1.4142

 7.8740

Hình dưới là kết quả mơ phỏng thu được nhờ chương trình ILCer5.m sau 2 và 5 lần thử.

24


6. Chọn tham số hội tụ cho hàm học (tiếp)
Ví dụ 5 (tiếp)
Ở ví dụ này, tín hiệu đặt là r (t )  0.6sin  t T   0.2sin  4 t T  , có T  100s , Ts  0.1s
Mã nguồn chương trình mơ phỏng ILCer5.m như sau
% ILC with P learning parameter in frequency domain
clear; clc;
global A B uc

A=[0 1;-6 -5]; B=[0;1]; c=[1;1];
Ts=0.1; T=100; % T is the periodic working time interval
N=T/Ts; K=5; r=[]; t=[]; y=[]; r=[]; M=5; % trials number
for i=1:N
% create the reference
t(i)=(i-1)*Ts;
r(i)=0.6*sin(pi/T*t(i))-0.2*sin(4*pi/T*t(i));
end
u=r; e=zeros(N,1);
for j=1:M
x0=[0;0]; % initial states
for i=1:N
u(i)=u(i)+K*e(i);
uc=u(i);
[ti,z]=ode45(@funILCer5,[0 Ts],x0); % send to the plan
x0=z(length(ti),:)';
y(i)=c'*x0; e(i)=r(i)-y(i); % output tracking error
end
end
plot(t,r,t,y,t,e); legend('reference','output','error');
25


×