You are on page 1of 18

Họ và tên MSSV Nội dung quản lý

Võ Minh Hiếu 2013175 Bài 2


Lê Hoàng Đức 2012991 Bài 1
Hoàng Ngọc Nhân 2011729 Bài 2
Nguyễn Phúc Hoan 2013206 Bài 1

A= +++ ¿ =5,25 ¿ B= 4√ ...=4,05


4
Suy ra:
m=100 A=100.7=525 (kg)L=B/2=6,85/2=2,025( m)
i) Xây dựng hàm truyền hệ thống
Bước 1: Mô hình hóa hệ thống
Xét riêng hệ có vật M và theo định luật II Newton
d2 x dx
M. =u(t )−F b −T sin (¿ φ(t))¿ (1)
dt 2
dt

Xét riêng hệ con lắc m


Theo Ox: m d 2 ¿ ¿
⇔ m¿ (2)

Theo Oy: m d 2 ¿ ¿
⇔ m¿ (3)

Thực hiện cộng vế với vế phương trình (1) và (2) được


d2 x
( m+ M ) 2 −mL sin(¿ φ(t))
dt
dφ (t) 2
dt ( )
+mLcos (¿ φ( t)).
d 2 φ(t )
dt 2
dx
=u(t)−F b ¿ ¿ (*)
dt

Thực hiện nhân 2 vế phương trình (2) với cos (¿ φ(t ))¿ và 2 vế phương trình (3) với
sin(¿ φ(t)) ¿ sau đó trừ vế với vế phương trình (2) và (3)

m cos(¿ φ(t))¿ ¿
m sin(¿ φ(t)) ¿ ¿

Trừ vế với vế:


2 2
d x d φ (t)
m 2
cos(¿ φ(t))+mL 2
+ mgsin (¿ φ(t ))=0 ¿¿ (**)
dt dt

Nếu xem như góc quay φ (t ) là rất nhỏ thì sin ( φ ( t ) ) ≈ φ ( t ) cos φ (t ) ≈ 1
Ta thu được hệ phương trình mô tả chuyển động của hệ thống là 2 phương trình (*) và
(**) sau khi thế các thông số đã biết ở đầu bài như sau:
2 2
2
d φ (t) d φ (t ) 2
( m+ M ) d x2 + Fb dx +mL =u ( t )mL +mgφ ( t ) =−m
d x
dt dt dt
2
dt
2
dt
2

Thay các dữ kiện đầu bài ta được hệ phương trình


2 2
2
d x dx d φ (t ) d φ (t ) 2
d x
1525 +0,5 +1063.125 =u ( t ) 1063.125 +5250 φ ( t ) =−525
dt
2
dt dt
2
dt
2
dt
2

Bước 2: Biến đổi Laplace hệ phương trình thu được hệ


2 2 2 2
1525 s X ( s )+ 0,5 sX ( s ) +1063.125 s Φ ( s ) =U ( s )1063.125 s Φ ( s )+5250 Φ ( s ) =−525 s X ( s )

(
⇒ X (s )= −2.025−
10
s2 )
Φ(s)

Thế X(s) vào phương trình đầu của hệ phương trình ta được

[ ( )
( 1525 s 2+ 0,5 s ) −2,025− 102 +1063.125 s2 Φ(s)=U ( s)
s ]
⇔ (
−2025 s 3−1,0125 s 2−15250 s−5
s )
Φ (s)=U (s)

Φ (s ) −s
⇒ G ( s )= =
U ( s) 2025 s +1,0125 s 2 +15250 s+ 5
3

ii) Vẽ quỹ đạo nghiệm số hệ thống


Sử dụng matlab nhập hàm truyền và dùng lệnh rlocus() để vẽ quỹ đạo nghiệm số
Quỹ đạo nghiệm số của hệ thống

iii) Vẽ biểu đồ Bode, xác định độ dự trữ pha và độ dự trữ biên


Sử dụng matlab với hàm bode()
Biểu đồ Bode của hệ thống

Code tính độ dữ trữ pha và độ dữ trữ biên


ts = [-1 0];
ms = [2025 1.0125 15250 5];
b= tf(ts,ms);
[GM, PM] = margin(b);
fprintf('Do du tru bien = %.2f dB\n',
20*log10(GM));
fprintf('Do du tru pha = %.2f degrees\n',
PM);

Kết quả

Ta thấy độ dự trữ biên GM = 74.42 dB, độ dự trữ pha ϕM =−73.21 °


Nhận xét: Hệ thống không ổn định.
i) Các thành phần chính của một hệ thống điều khiển hồi tiếp

Các thành phần tương ứng trong hệ thống


- Đầu vào Input: rotating cam;
- Bộ tổng Add: Differential amplifier;
- Bộ điều khiển Controller: khối Gc(s);
- Cơ cấu chấp hành Actuator: power amplifier, prime mover, gear box, lead
screw, moving tool carriage;

- Đối tượng truyền động Process: : tool bit;

- Cảm biến Sensor: position feedback;

- Đầu ra Output: tool bit position.


ii)

iii) Thiết kế bộ điều khiển P, PI và PID. Điều chỉnh thông số dựa trên phương pháp
Ziegler – Nichols.
Thiết kế bộ điều khiển P, PI và PID
− πδ
√ 1−δ 2
% M p ≤ 25 %=¿ e ∗100 % ≤25 %
Suy ra:δ ≥ 0.4037 . Chọn δ=0.5
Chọn T s=3
3
T s=3=¿ =3=¿ ω n=2
δ ωn
Từ δ và ω n suy ra các cực mà quỹ đạo nghiệm số cần đi qua là nghiệm của phương
trình: s2 +2 δ ω n s+ ωn2=0=¿ s d1,2=−1 ± √3 j
1 1
K 1= =
Thiết kế bộ điều khiển P: |G(s)|s
d
1
| 50
|
s(s+1)( s+ 4)( s+5) s d
1

Thay sd1 =−1 ± √ 3 j vào biểu thức trên ta được K 1=1.05


Vậy bộ điều khiển P là: G P ( s ) =K 1=1.0 5
-Thiết kế bộ điều khiển PD: G PD ( s ) =K 2 (s + z 0)

θ1=23.4

θ2=30

θ3 =90

θ 4=120

Ta có:
θ z−θ 1−θ2−θ 3−θ 4=−180 °

Vậy θ z=83.5 °
tan θ z=
√ 3 =¿ x=0.2 28
x
Vậy z 0=−1.228
Tính K 2:
1 1
K 2= = =0.6 4
|(s + z 0) G(s)|s d
1

| ( s +1.2 28 )∗50
|
s (s+1)(s +4 )( s+ 5) s d
1

Vậy bộ điều khiển PD là: G PD ( s ) =K 2 ( s+1.2 ) =0.6 4 (s +1.2 28)


s+ a2
Thiết kế bộ điều khiển PI: G PI ( s )=K 3 ( )
s
Chọn a 2=0.1
Tính K 3:
1 1
K 3= = =1.072
| | | |
s+ a2 s+ 0.1
( ) G(s) ( )∗50
s s
d
1
s
s (s +1)(s+ 4)(s+5) s d
1

Vậy bộ điều khiển PI là: G PI ( s )=K 3 ( )


s+ a2
s
=1.072(
s+0.1
s
)

(s+ z 0 )(s +a2 )


Thiết kế bộ điều khiển PID: G PID ( s )=K 4
s
Với z 0=1.2 28 và a 2=0.1
1 1
¿> K 4= = =0.6 2 1
| | | |
(s+ z 0 )(s +a2 ) ( s+1.2 28)(s +0.1)
G( s) ∗50
s s
d
1
s
s (s +1)(s+ 4)(s+5) s d
1

621∗( s+1.2 28)(s +0.1) 0.07 625


Vậy bộ điều khiển PID là: G PID ( s )=0. =0.8247 +0.6 21 s+
s s
Kiểm tra đáp ứng của bộ số trên trong matlab ta có:

=> Không thỏa mãn yêu cầu đề bài


Điều chỉnh thông số dựa trên phương pháp ZieglerNichols
50
Hàm truyền hệ thống: G ( s )=
s ( s+1 )( s+ 4 ) ( s +5 )

Mô hình hóa trong Mathlab Simulink:

Ta thử các giá trị cho đến khi hệ thống đạt được ở biên giới của sự ổn định.
Đáp ứng của hệ thống khi ở biên giới của sự ổn định
Ta có :
K u=1.073

Tu=10.387−5.938=4.449

Thông số
KP TI TD
Bộ điều khiển
P 0,5Ku=0.5365 −¿ -
PI 0,45Ku=0.48285 0,54Ku/Tu =0.13024 -
PID 0,6Ku=0.6438 0,5Ku/Tu=0.12059 0.6KuTu/8=0.358

iv) Mô phỏng đáp ứng hệ thống của các bộ điều khiển được thiết kế thông qua Matlab.
So sánh đáp ứng quá độ và sai số xác lập giữa các bộ điều khiển.
Bộ điều khiển P với Kp = 0.5365
Đáp ứng quá độ bộ điều khiển P khi điều chỉnh thông số dựa trên phương pháp
Ziegler – Nichols
Code để tinh chỉnh sau khi dùng phương pháp Ziegler – Nichols:

clc
clear
s=tf('s')
ts = [50];
ms = [1 10 29 20 0];
Kp = linspace(0.1,0.15,1000);
Gs = tf(ts,ms);
G_pid = Kp;
Hs = 1;
G = Gs.*G_pid;
for i = 1 : 1000
G_PID = G(1,i)
T = feedback(G(1,i),Hs);
step_info = stepinfo(T,'SettlingTimeThreshold',0.05);
Setting_time = step_info.SettlingTime
Over_shoot = step_info.Overshoot
end

Sau khi chạy đoạn code trên thì nhóm em chỉ tìm được SettlingTime là 5.4139s với Kp
= 0.14147
Đáp ứng quá độ bộ điều khiển P đã tinh chỉnh

Bộ điều khiển PI với Kp = 0.48285 và Ki = 0.13024

Đáp ứng quá độ bộ điều khiển PI khi điều chỉnh thông số dựa trên phương pháp
Ziegler – Nichols

Code để tinh chỉnh sau khi dùng phương pháp Ziegler – Nichols:

clc
clear
s=tf('s')
ts = [50];
ms = [1 10 29 20 0];
Kp = linspace(0.45,0.5,20);
Sau khi chạy đoạn code trên thì nhóm em chỉ tìm được SettlingTime là 5.4139s với
Kp= 0.001 và Ki = 0.463158

Đáp ứng quá độ bộ điều khiển PI đã tinh chỉnh


Bộ điều khiển PID với Kp = 0.6438 , Ki =0.12059 và Kd = 0.358

Đáp ứng quá độ bộ điều khiển PI khi điều chỉnh thông số dựa trên phương pháp
Ziegler – Nichols
Code để tinh chỉnh sau khi dùng phương pháp Ziegler – Nichols:

clc
clear
s=tf('s')
ts = [50];
ms = [1 10 29 20 0];
Kp = linspace(0.6,0.7,10);
Ki = linspace(0.001,0.003,10);
Kd = linspace(0.5,0.55,10);
Hs = 1;
Gs = tf(ts,ms);
min = 100;
for i = 1 : 10
for j = 1 : 10
for k = 1 : 10
G_pid = Kp(1,i) + Ki(1,j)/s + Kd(1,j)*s
G = Gs*G_pid;
T = feedback(G,Hs);
step_info = stepinfo(T,'SettlingTimeThreshold',0.05);
Setting_time = step_info.SettlingTime
if(min > Setting_time)
min = Setting_time;
end
end
end
end

Sau khi chạy đoạn code trên thì nhóm em chỉ tìm được SettlingTime là 2.996s với Kp=
0.6667 , Ki = 0.003 và Kd = 0.55
Đáp ứng quá độ bộ điều khiển PI đã tinh chỉnh
So sánh đáp ứng quá độ và sai số xác lập giữa bộ điều khiển P, PI và PID sau khi đã
tinh chỉnh :
Vọt lố (%) Thời gian xác lập (s) Sai số xác lập
P 4,98 5,41 0
PI 46,5 11,5 0
PID 17,8 2.996 0

Kết luận :
Để hệ thống đáp ứng được những yêu cầu bên dưới :
• Độ vọt lố %Mp ≤ 25% (đối với tín hiệu đầu vào là hàm dốc đơn vị)
• Thời gian xác lập Ts ≤ 3s (theo tiêu chuẩn 5%)
Đối với bộ điều khiển P và PI thì không thể làm cho hệ thống đáp ứng theo đúng yêu
cầu đề bài. Ngoài ra bộ điều khiển P còn tốt hơn bộ điều khiển PI. Nếu muốn hệ thống
đáp ứng theo đúng yêu cầu đề bài trên thì phải dùng bộ điều khiển PID.

You might also like