You are on page 1of 20

NỘI DUNG 1: MÔ HÌNH HÓA HỆ THỐNG VÀ TÌM ĐÁP ỨNG HỆ THỐNG THEO

THỜI GIAN

* khối lượng cơ thể (m1) = 2500 kg,


* khối lượng huyền phù (m2) = 320kg,
* hằng số lò xo của hệ thống treo (k1) = 80.000 N / m,
* hằng số lò xo của bánh xe và lốp xe (k2) = 500.000 N / m,
* hằng số giảm xóc của hệ thống treo (b1) = 350 Ns / m.
* hằng số giảm xóc của bánh xe và lốp xe (b2) = 15.020 Ns / m.
* lực kiểm soát (u) = lực từ bộ điều khiển chúng ta sẽ thiết kế.

1. Xác định hàm truyền của hệ thống


- Theo định luật II New-ton, ta có các phương trình động như sau:
M 1 Ẍ 1=−b1 ( Ẋ 1 − Ẋ 2 )−K 1 ( X 1−X 2 ) +U (1)
M 2 Ẍ 2=b1 ( Ẋ 1 − Ẋ 2 ) + K 1 ( X 1− X 2 ) +b2 ( Ẇ − Ẋ 2 ) + K 2 ( W − X 2 )−U (2)
- Biến đổi laplace hai phương trình, ta có:

( M 1 s 2+ b1 s+ K 1 ) X 1 ( s ) −( b1 s + K 1 ) X 2 ( s )=U ( s ) (3)

−( b 1 s+ K 1 ) X 1 ( s ) + ( M 2 s + ( b1 +b2 ) s+ ( K 1 + K 2 ) ) X 2 ( s ) =( b2 s + K 2 ) W ( s )−U ( s)
2
(4)


[ ( M 1 s 2+ b1 s+ K 1)
− ( b1 s + K 1 )
−( b 1 s+ K 1 )
( M 2 s +( b1 +b 2 ) s+ ( K 1+ K 2 ) )
2
][ ] [
X 1 ( s)
X 2 ( s)
=
U (s )
( b 2 s+ K 2 ) W ( s )−U (s) ]
(5)

Giả sử: A=
[ ( M 1 s 2+ b1 s+ K 1)
−( b1 s + K 1 )
−( b 1 s+ K 1 )
( M 2 s + ( b1 +b 2 ) s+ ( K 1+ K 2 ) )
2
] (6)
⟹ ∆=detA =det
[ ( M 1 s2 +b1 s + K 1 )
−( b1 s+ K 1)
−( b1 s+ K 1 )
( M 2 s +( b1+ b2 ) s + ( K 1 + K 2 ) )
2
]
=( M 1 s +b1 s + K 1 ) ( M 2 s + ( b1+ b2 ) s + ( K 1 + K
2 2

(7)

Ma trận nghịch đảo của ma trận A:

[
1 ( M 2 s + ( b 1+ b2 ) s + ( K 1 + K 2 ) )
]
2
−1 ( b1 s + K 1 )
A = (8)
∆ ( b1 s+ K 1) ( M 1 s 2+ b1 s+ K 1)

Nhân ma trận A−1 với vế phải của phương trình (3):

[ ] [
X 1 ( s ) 1 ( M 2 s + ( b 1+b 2 ) s+ ( K 1+ K 2 ) )
][ ]
2
( b1 s+ K 1 ) U (s ) 1
= [( M ¿¿ 2 s +b2 s + K
2
⟹ =
X2 (s ) ∆ ( b 1 s+ K 1 ) ( M 1 s +b 1 s+ K 1 )
2
( b2 s + K 2 ) W ( s )−U ( s ) ∆
(9)

Xét U ( s ),W ( s )=0.Ta được hàm truyền G 1 (s):


2
X 1 ( s ) −X 2 ( s ) ( M 1 + M 2 ) s + b2 s+ K 2
G1 ( s )= =
U ( s) ∆
(10)
Xét W ( s ),U ( s )=0 . Ta được hàm truyền G2 (s):
X 1 ( s )−X 2 ( s ) −M 1 b2 s 3−M 1 K 2 s 2
G2 ( s )= =
W ( s) ∆
(11)

2. Phương trình không gian trạng thái.


Dùng Matlab biến đổi hàm truyền sang phương trình trạng thái.
Biến đổi G1 ( s ):
Phương trinhg tổng quát:

{ ẋ ( t )= Ax ( t ) +Br (t )
X ( t ) =Cx ( t ) + Dr (t)

Trong đó: x _biến trạng thái


X _tín hiệu ra
r (U )_tín hiệu vào
syms m1;
syms m2;
syms k1;
syms k2;
syms b1;
syms b2;
num1=[(m1+m2) b2 k2];
den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1)
k1*k2];
[A,B,C,D]=tf2ss(nump,denp)
Ta được
A=
[ -(b1*m2 + m1*(b1 + b2))/(m1*m2), -(m1*(k1 + k2) + b1*b2 + k1*m2)/(m1*m2), -(b1*k2
+ b2*k1)/(m1*m2), -(k1*k2)/(m1*m2)]
[ 1, 0, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
B=
1
0
0
0
C=
[ 0, (m1 + m2)/(m1*m2), b2/(m1*m2), k2/(m1*m2)]
D=
0
Ta được phương trình trạng thái:
{
[ ][ ][ ] [ ]
−( b1 m2+ m1 ( b1 +b 2 ) ) −( m1 ( k 1 +k 2 ) +b 1 b 2+ k 1 m2 ) − ( b 1 k 2 + b2 k 1 ) −( k 1 k 2 )
ẋ 1 x1 1
ẋ 2 m1 m2 m1 m2 m1 m2 m1 m2 x2 0
= 1 0 0 0 + U
ẋ 3 x3 0
0 1 0 0
ẋ 4 x4 0
0 0 1 0

[]
x1
X= 0
[ m1 +m2
m1 m2
b2
m1 m2
k2 x2
]
m1 m 2 x 3
x4

(12)
Biến đổi G 2 ( s ):
Phương trinhg tổng quát:

{ ẋ ( t )= Ax ( t ) +Br (t )
X ( t ) =Cx ( t ) + Dr (t)

Trong đó: x _biến trạng thái


X _tín hiệu ra
r (W )_tín hiệu vào
Nhập các biến như trên:
>> num2=[-(m1*b2) -(m1*k2) 0 0];
>> den2=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+
(b2*k1) k1*k2];
>> [A,B,C,D]=tf2ss(num2,den2)
Ta được
A=
[ -(b1*m2 + m1*(b1 + b2))/(m1*m2), -(m1*(k1 + k2) + b1*b2 + k1*m2)/(m1*m2), -(b1*k2
+ b2*k1)/(m1*m2), -(k1*k2)/(m1*m2)]
[ 1, 0, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
B=
1
0
0
0
C=
[ -b2/m2, -k2/m2, 0, 0]
D=
0
Ta được phương trình trạng thái:

{
[ ][ ][ ] [ ]
−( b1 m2+ m1 ( b1 +b 2 ) ) −( m1 ( k 1 +k 2 ) +b 1 b 2+ k 1 m2 ) − ( b 1 k 2 + b2 k 1 ) −( k 1 k 2 )
ẋ 1 x1 1
ẋ 2 m 1 m2 m1 m2 m1 m2 m1 m2 x2 0
= 1 0 0 0 + W
ẋ 3 x3 0
0 1 0 0
ẋ 4 x4 0
0 0 1 0

[]
x1
X=
−b2
m2 [ −k 2
m2
x
0 0 2
x3 ]
x4

(13)
3. Đáp ứng của hệ thống.(Biểu diễn trên Matlab)
- Xét đáp ứng hàm truyền.
m1 = 2500;
m2 = 320;
k1 = 80000;
k2 = 500000;
b1 = 350;
b2 = 15020;

num1=[(m1+m2) b2 k2];
den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+
(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G1=tf(num1,den1);

Num2=[-(m1*b2) -(m1*k2) 0 0];


Den2=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+
(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G2=tf(num2,den2);
step(G1);
G1
Từ biểu đồ này của phản ứng vòng hở cho một lực tác động của bước đơn vị, chúng ta có thể
thấy rằng hệ thống bị thiếu.  Xe buýt mất một thời gian dài để đạt đến trạng thái ổn định. Bây
giờ hãy nhập các lệnh sau để xem phản hồi cho đầu vào nhiễu bước, W (s), với cường độ 0,1
m.
step(0.1*G2);
0.1*G2
Để xem một số chi tiết, có thể thay đổi trục:
Nhập thêm code của G2 ( s ):
axis([0 10 -.1 .1]);
Từ biểu đồ này của phản ứng vòng hở cho nhiễu loạn bước 10 cm, chúng ta có thể thấy rằng
khi xe buýt vượt qua vết lõm 10 cm trên đường, thân xe buýt sẽ dao động trong một thời gian
dài (~ 50 giây) biên độ 8 cm.  Độ vọt lố lớn và thời gian lắng lâu.
Giải pháp cho những vấn đề này là thêm bộ điều khiển phản hồi vào hệ thống để cải thiện
hiệu suất.
Sơ đồ của hệ thống vòng kín

Trong đó:
F ( s ) G1 ( s ) =G 2 (s)

C (s) _controller

F ( s ) _ tín hiệu vào của G 2 ( s)

- Xét đáp ứng phương trình trạng thái.


Phương trình trạng thái đối với G1 ( s ).
m1=2500;
m2=320;
k1=80000;
k2=500000;
b1 = 350;
b2 = 15020;
A=[-(b1*m2 + m1*(b1 + b2))/(m1*m2) -(m1*(k1 + k2) + b1*b2 +
k1*m2)/(m1*m2) -(b1*k2 + b2*k1)/(m1*m2) -(k1*k2)/(m1*m2)
1 0 0 0
0 1 0 0
0 0 1 0];
B=[1
0
0
0];
C=[0 (m1 + m2)/(m1*m2) b2/(m1*m2) k2/(m1*m2)];
D=[0];
G1=ss(A,B,C,D);
step(G1);
grid

Phương trình trạng thái đối với G2 ( s ).


A=[-(b1*m2 + m1*(b1 + b2))/(m1*m2) -(m1*(k1 + k2) + b1*b2
+ k1*m2)/(m1*m2) -(b1*k2 + b2*k1)/(m1*m2)
-(k1*k2)/(m1*m2)
1 0 0 0
0 1 0 0
0 0 1 0];
B=[1
0
0
0];
C=[-b2/m2 -k2/m2 0 0];
D=[0];
G2=ss(A,B,C,D);
step(G2);
grid
- Xét đáp ứng xung.
Đối với G1 ( s ).
m1=2500;
m2=320;
k1=80000;
k2=500000;
b1 = 350;
b2 = 15020;
A=[-(b1*m2 + m1*(b1 + b2))/(m1*m2) -(m1*(k1 + k2) + b1*b2 +
k1*m2)/(m1*m2) -(b1*k2 + b2*k1)/(m1*m2) -(k1*k2)/(m1*m2)
1 0 0 0
0 1 0 0
0 0 1 0];
B=[1
0
0
0];
C=[0 (m1 + m2)/(m1*m2) b2/(m1*m2) k2/(m1*m2)];
D=[0];
impulse(A,B,C,D);
grid
Đối với G 2 ( s ).
A=[-(b1*m2 + m1*(b1 + b2))/(m1*m2) -(m1*(k1 + k2) + b1*b2 +
k1*m2)/(m1*m2) -(b1*k2 + b2*k1)/(m1*m2) -(k1*k2)/(m1*m2)
1 0 0 0
0 1 0 0
0 0 1 0];
B=[1
0
0
0];
C=[-b2/m2 -k2/m2 0 0];
D=[0];
impulse(A,B,C,D);
grid
Phóng to:

II. Khảo sát sự phụ thuộc của đáp ứng hệ thống theo hệ số cản b2 thay đổi từ 10 đến 100
Ns/m.
Từ đề bài ta lấy các giá trị của b 1=(100 ; 200 ; 400 ; 600 ; 800 ; 1000) được biểu diễn trên
Matlab:
1.Đối với G1 ( s ).
m1=2500;
m2=320;
k1=80000;
k2=500000;
b1 = 0;
b2 = 15020;
u=[100 200 400 600 800 1000];
for i=u;
b1=b1+i;
num1=[(m1+m2) b2 k2];
den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+
(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G1=tf(num1,den1);
hold on;
step(G1);
end
legend('b1=100','b1=200','b1=400','b1=600','b1=800','b1=1000')
;
grid

Phóng to:
Từ biểu đồ ta thấy:
+ Khi b 1 tăng dần thì biên độ giao động của hệ giảm dần.
+ Khi b 1 tăng dần thì thời gian dao động giảm dần.
2.Tương tự đối với G2 ( s ).
Các số liệu đầu vào như trên:
for i=u;
b1=b1+i;
num2=[-(m1*b2) -(m1*k2) 0 0];
den2=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+
(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G2=tf(num2,den2);
hold on
step(G2);
end
legend('b1=100','b1=200','b1=400','b1=600','b1=800','b1=1
000');
grid

Phóng to:
III. Thiết lập bộ điều khiển PI khảo sát sự phụ thuộc chất lượng điều khiển vị trí
theo các tham số PI.
1.Ta có sơ đồ của hệ thống vòng kín từ phần (I):( F ( s ) G1 ( s ) =G 2 (s)
Thiết kế bộ điều khiển phản hồi để khi nhiễu đường (W) được mô phỏng theo đầu vào
bước đơn vị, đầu ra (X1-X2) có thời gian xử lý dưới 5 giây và độ vọt lố dưới 5%. Ví
dụ: khi xe buýt chạy trên bước 10 cm, thân xe buýt sẽ dao động trong phạm vi +/- 5
mm và sẽ ngừng dao động trong vòng 5 giây.
Mô hình hệ thống được biểu diễn trong Matlab:
m1=25000;
m2=320;
k1=80000;
k2=500000;
b1 =350;
b2 =15020;

num1=[(m1+m2) b2 k2];
den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+
(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G1=tf(num1,den1);

num2=[-(m1*b2) -(m1*k2) 0 0];


den2=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+
(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G2=tf(num2,den2);
step(G2);

numf=num2;
denf=num1;
F=tf(numf,denf);
2.Thêm bộ điều kiển PI.
Hàm truyền cho bộ điều khiển PI là:
K i K p s +Ki
C ( s ) =K p + =
s s
Trong đó: K p _lợi ích tỉ lệ
K i _lợi ích tích phân

Để bắt đầu, ta chọn K p =100000, K i=1 .


Ta thêm đoạn code vào tệp trên:
kp = 100000;
ki = 1;
C=pid(kp,ki);
Từ sơ đồ trên ta thấy W chuyển sang đầu ra ( X 1−X 2 ) :
Mc=F*feedback(G1,C);
Vẽ sơ đồ đáp ứng vòng kín.
Ta sử dụng bước 0.1m
t=0:0.05:5;
step(0.1*Mc,t);
title('Phan hoi buoc 0,1 m trong dieu khien PID')
grid on
Ta bắt đầu khảo sát bằng cách tăng K p (cộng thêm 100000 cho mỗi lần khảo sát)
kp =200000;

Ta cứ tiếp tục khảo sát đến khi Kp = 1500000:


Khi khảo sát ta thấy biên độ và thời gian dao động giảm dần và khi K p =1500000 đã
thỏa mãn yêu cầu ngừng dao động trong vòng 5 giây, nhưng biên độ vẫn quá lớn.

You might also like