You are on page 1of 27

TRƯỜNG ĐẠI HỌC BÁCH KHOA CẦN THƠ

BỘ MÔN TỰ ĐỘNG HÓA

BÁO CÁO CHUYÊN ĐỀ KĨ THUẬT ĐIỀU KHIỂN


(CT400)

CÁN BỘ HƯỚNG DẪN: Sinh Viên Thực Hiện:

PGS.TS. Nguyễn Chí Ngôn Võ Văn Toàn


MSSV: B2000105
Ngành: Kỹ thuật Cơ - Điện tử
Khóa : 46

1
Mục lục
a) Viết phương trình vi phân:.............................................................................................................
b)Viết phương trình trạng thái:..........................................................................................................
c) Thiết kế bộ điều khiển hồi tiếp trạng thái......................................................................................
** Tính Wn:........................................................................................................................................
** Cặp cực quyết định........................................................................................................................
* * Thiết kế bộ điều khiển hồi tiếp trạng thái.....................................................................................
d) Sử dụng hàm Nbar của MATLAB để bù độ lợi và mô phỏng bộ điều khiển vừa thiết kế
trên MATLAB/Simulink.....................................................................................................................
Mô phỏng trước khi bù độ lợi:...........................................................................................................
Mô phỏng sau khi bù độ lợi:.............................................................................................................
e) Báo cáo kết quả :............................................................................................................................
Tài liệu tham khảo.............................................................................................................................

2
Đề tài :
Cho một đối tượng có hàm truyền như sau:
U G(s)= y
(0.1+ A)
2
(1+ B) s +Cs+ D
Trong đó: A=dd/10; B=mm/30; C=(dd+mm)/100 và D=yyyy/2023 với mm dd yyyy là ngày
tháng năm sinh của sinh viên. Sinh viên hãy:
a) Viết phương trình vi phân mô tả quan hệ vào ra y=f(u) của hệ thống này.
b) Xây dựng hệ phương trình trạng thái từ phương trình vi phân trên.
c) Thiết kế bộ điều khiển hồi tiếp trạng thái cho hệ thống.
d) Sử dụng hàm Nbar của MATLAB để bù độ lợi và mô phỏng bộ điều khiển vừa
thiết kế trên MATLAB/Simulink.Yêu cầu tín hiệu tham khảo dạng hàm nấc.
e) Báo cáo kết quả theo dạng Tạp chí khoa học trường Đại học Cần Thơ.

Giải
Tính:
A= dd/10=15/10=1.5
B= mm/30=05/30=0.167
C=(dd+mm)/100=(15+05)/100=0.2
D=yyyy/2023=2001/2023=0.989=>0.99

a) Viết phương trình vi phân:


L{ y } Y (s ) 2.5
G ( s )= = =
L{u } U (s ) 1.167 s +0.2 s +0.99
2

<=> 1.167 s 2 Y ( s ) +0.2 sY ( s )+ 0.99Y ( s )=2.5U ( s )


Áp dụng biến đổi L−1 2 vế ta có:
1.167 ÿ (t)+0.2 ẏ (t)+0.99 y (t )=2.5 U (t)
Viết gọn:
1.167 ÿ +0.2 ẏ+ 0.99 y=2.5 u

3
b)Viết phương trình trạng thái:
Từ phương trình vi phân ta có :
1.167 ÿ=−0.2 ẏ −0.99 y+ 2.5u
−0.99 y−0.2 ẏ +2.5 u
 ÿ=
1.167

Đặt biến trạng thái: { x 1= y


x2 = ẋ1

x 1= y => ẋ 1= ẏ=x 2
−0.99 y−0.2 ẏ +2.5 u
x 2= ẋ 1= ẋ 2= ẍ 1= ÿ=
1.167
-0.99 x 1 - 0. 2 x 2 +2 . 5u
=
1. 167

{
ẋ 1=0 x 1+1 x 2+ 0u
-0.99 x 1 - 0.2 x 2 +2 .5u
ẋ2 =
1.167

| ||
ẋ 1
=
0 1 x1
ẋ 2 −0.99/1.167 −0.2 /1.0167 x 2
0
+ u
1 || | | |
ẋ= Ax+ Bu
Trong đó:

x= || |
x1
x2
; A=
0 1
−0.99/1.167 −0.2 /1.167
0
; B= ;
1 | ||
Y=Cx+Du

=C ||
x1
x2
+ Du=x1+0u

 {C=[2.5D=0
/1.167 0 ]
Phương trình trạng thái của đối tượng:

{ ẋ= Ax+ Bu
y=Cx+ Du

Trong đó : A= |−0.99/1.167
0
−0.2 /1.167|
1
; B=| | ; C=[ 2.5/1.167 0 ] ; D=0
0
1

4
5
c) Thiết kế bộ điều khiển hồi tiếp trạng thái
{PotT <1<1%s

** Cặp cực quyết định có dạng


S12=-ξ wn ± j wn √ 1−ξ 2

 Tính ξ
−ξπ
POT =e √ 1−ξ <1%=0.01 2

−ξπ
 - < -4.6
√1−ξ 2
 (ξ2π2)>4.62*(1-ξ2)


2
4.6
 ξ> 2 2
=0.826
π + 4.6
Chọn ξ=0.9
** Tính Wn:
4
Tqđ = < 1(s)
ξ wn
4 4
 Wn > = = 4.44
ξ 0.9
=> Chọn wn=5
** Cặp cực quyết định
S1,2= -0.9*5±5i√ 1−0.92

Hay {
s 1=−4.5+2.2 i
s 2=−4.5−2.2 i

* * Thiết kế bộ điều khiển hồi tiếp trạng thái:


B1: Viết phương trình đặc trung vòng kính của hệ:
Det(sI-A+BK)=0 (2)
Trong đó K=[ k 1 k 2 ] là vectơ hồi tiếp trạng thái cần tìm

(2) => det(s |10 01|−|−0.990/1.167 −0.2 1/1.167|+|01||k 1 k 2|) =0


Det(|
0 s| |−0.99 /1.167 −0.2 /1.167| |k 1 k 2|
s 0− 0 1 + 0 0 ) =0

6
s −1
Det( 0.99 + k 1 s + 0.2 + k 2 ) =0
1.167 1.167
Tích chéo:
0.2 0.99
s*( s+ 1.167 + k 2) + 1.167 + k 1 =0
0.2 0.99
s2+( 1.167 + k 2 s)+ 1.167 + k 1=¿ 0 (3)

B2: Viết pt đặc trưng mong muốn.


(s-s1)*(s-s2)=0
 (s+4.5-2.2i)*(s+4.5+2.2i)=0
 (s+4.5)2-(2.2i)2=0
 S2+9s+4.52+2.22=0
 S2+9s+25.09=0 (4)
B3: Căn bằng 2 về (3)và (4)
0.2 0.99
s2+ 1.167 + k 2 s+ 1.167 + k 1=s2+9s+25.09

{
0.2 2.5
+ k 2=9

1.167 1.167
0.99
+
2.5
k 1=25.09
=> {
k 2=8.8286
k 1=24.2417
1.167 1.167

Kết luận: Vậy vectơ HTTT K=[ 24.2417 , 8.8286]

d) Sử dụng hàm Nbar của MATLAB để bù độ lợi và mô phỏng bộ điều khiển


vừa
thiết kế trên MATLAB/Simulink.
{ ẋ= Ax+ Bu
y=Cx+ Du
=>{
ẋ=Ax + Bu
y =Cx
*Cho:
Step time= 5
Initial value= 4
Final value= -5

7
Mô phỏng trước khi chưa bù độ lợi:

Hình 1. Mô phỏng trên Simulink khi chưa bù độ lợi.

Kết quả trước khi bù độ lợi:

Hình 2. Kết quả trên Simulink khi chưa bù độ lợi.

8
=>Code

>> num=[2.5];
>> den=[1.167 0.2 0.99];
>> tf(num,den)

ans =

2.5
------------------------
1.167 s^2 + 0.2 s + 0.99

Continuous-time transfer function.

>> [A,B,C,D]=tf2ss(num,den)

A=

-0.1714 -0.8483
1.0000 0

B=

1
0

C=

9
0 2.1422

D=

>> s1=-4.5+2.2j

s1 =

-4.5000 + 2.2000i

>> s2=-4.5-2.2j

s2 =

-4.5000 - 2.2000i

>> K=place(A,B,[s1,s2])

K=

8.8286 24.2417

10
Mô phỏng sau khi bù độ lợi:

Hình 3. Mô phỏng trên Simulink khi bù độ lợi


Kết quả sau khi bù độ lợi :

Hình 4. Kết quả trên Simulink khi bù độ lợi.

11
=>Code

>> num=[2.5];
>> den=[1.167 0.2 0.99];
>> tf(num,den)

ans =

2.5
------------------------
1.167 s^2 + 0.2 s + 0.99

Continuous-time transfer function.

>> [A,B,C,D]=tf2ss(num,den)

A=

-0.1714 -0.8483
1.0000 0

B=

1
0

12
C=

0 2.1422

D=

>> s1=-4.5+2.2j

s1 =

-4.5000 + 2.2000i

>> s2=-4.5-2.2j

s2 =

-4.5000 - 2.2000i

>> K=place(A,B,[s1,s2])

K=

8.8286 24.2417

>> Nbar=rscale(A,B,C,D,K)

13
Nbar =

11.7120
>> who

Your variables are:

A B C D K Nbar ans den num out s1 s2

>> out

out =

Simulink.SimulationOutput:

ScopeData: [64x3 double]


tout: [64x1 double]

SimulationMetadata: [1x1 Simulink.SimulationMetadata]


ErrorMessage: [0x0 char]

>> t=out.tout

t=

0
0.0000

14
0.0000
0.0001
0.0007
0.0034
0.0168
0.0622
0.1369
0.2377
0.3630
0.5029
0.6576
0.8335
1.0335
1.2335
1.4335
1.6335
1.8335
2.0335
2.2335
2.4335
2.6335
2.8335
3.0335
3.2335
3.4335
3.6335
3.8335
4.0335

15
4.2335
4.4335
4.6335
4.8335
5.0000
5.0000
5.0000
5.1141
5.2283
5.3564
5.4954
5.6493
5.8241
6.0241
6.2241
6.4241
6.6241
6.8241
7.0241
7.2241
7.4241
7.6241
7.8241
8.0241
8.2241
8.4241
8.6241
8.8241

16
9.0241
9.2241
9.4241
9.6241
9.8241
10.0000

>> out.ScopeData

ans =

0 4.0000 0
0.0000 4.0000 0.0000
0.0000 4.0000 0.0000
0.0001 4.0000 0.0000
0.0007 4.0000 0.0000
0.0034 4.0000 0.0006
0.0168 4.0000 0.0134
0.0622 4.0000 0.1611
0.1369 4.0000 0.6264
0.2377 4.0000 1.4090
0.3630 4.0000 2.3108
0.5029 4.0000 3.0529
0.6576 4.0000 3.5533
0.8335 4.0000 3.8389
1.0335 4.0000 3.9651
1.2335 4.0000 4.0010
1.4335 4.0000 4.0065

17
1.6335 4.0000 4.0046
1.8335 4.0000 4.0023
2.0335 4.0000 4.0009
2.2335 4.0000 4.0003
2.4335 4.0000 4.0001
2.6335 4.0000 4.0000
2.8335 4.0000 4.0000
3.0335 4.0000 4.0000
3.2335 4.0000 4.0000
3.4335 4.0000 4.0000
3.6335 4.0000 4.0000
3.8335 4.0000 4.0000
4.0335 4.0000 4.0000
4.2335 4.0000 4.0000
4.4335 4.0000 4.0000
4.6335 4.0000 4.0000
4.8335 4.0000 4.0000
5.0000 4.0000 4.0000
5.0000 -5.0000 4.0000
5.0000 -5.0000 4.0000
5.1141 -5.0000 2.9527
5.2283 -5.0000 0.9961
5.3564 -5.0000 -1.1039
5.4954 -5.0000 -2.7959
5.6493 -5.0000 -3.9507
5.8241 -5.0000 -4.6151
6.0241 -5.0000 -4.9143
6.2241 -5.0000 -5.0005

18
6.4241 -5.0000 -5.0145
6.6241 -5.0000 -5.0106
6.8241 -5.0000 -5.0054
7.0241 -5.0000 -5.0022
7.2241 -5.0000 -5.0007
7.4241 -5.0000 -5.0002
7.6241 -5.0000 -5.0000
7.8241 -5.0000 -5.0000
8.0241 -5.0000 -5.0000
8.2241 -5.0000 -5.0000
8.4241 -5.0000 -5.0000
8.6241 -5.0000 -5.0000
8.8241 -5.0000 -5.0000
9.0241 -5.0000 -5.0000
9.2241 -5.0000 -5.0000
9.4241 -5.0000 -5.0000
9.6241 -5.0000 -5.0000
9.8241 -5.0000 -5.0000
10.0000 -5.0000 -5.0000

>> yref=out.ScopeData(:,2)

yref =

4
4
4
4

19
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4

20
4
4
4
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5

21
-5
-5
-5
-5

>> yref=out.ScopeData(:,3)

yref =

0
0.0000
0.0000
0.0000
0.0000
0.0006
0.0134
0.1611
0.6264
1.4090
2.3108
3.0529
3.5533
3.8389
3.9651
4.0010
4.0065
4.0046
4.0023

22
4.0009
4.0003
4.0001
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
4.0000
2.9527
0.9961
-1.1039
-2.7959
-3.9507
-4.6151
-4.9143
-5.0005
-5.0145
-5.0106

23
-5.0054
-5.0022
-5.0007
-5.0002
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
-5.0000
>> y=out.ScopeData(:,2)

y=

4
4
4
4
4
4
4

24
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4

25
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5
-5

26
-5

>> plot(t,y,'--r','linewidth',2)
>> hold on
>> plot(t,yref,'b','linewidth',2)
>> xlabel('thoi gian (giay)')
>> ylabel('yref/y')

e) Báo cáo kết quả :

 Chỉ cần 1 giây là bộ điều khiển đã có thể từ trạng thái tắt hoàn toàn tiến đến công
suất tối đa và cũng chỉ cần 1s là đã có thể hạ xuống mức công suất thấp hơn
 Với sự điều chỉnh linh hoạt, độ chính xác cao và thời gian đáp ứng thấp như vậy đã
giúp cho bộ điều khiển của chúng ta hoàn toàn có thể tiết kiệm năng lượng hơn
nhưng công suất vẫn rất tốt.

Tài liệu tham khảo


 Giáo trình LTĐK Tự động

27

You might also like