Professional Documents
Culture Documents
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
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
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
qđ
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
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)
{
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
7
Mô phỏng trước 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
>> [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:
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
>> [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
>> out
out =
Simulink.SimulationOutput:
>> 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')
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.
27