Thiết Kế Bộ Điều Khiển PIDZiegler và Nichols đưa ra hai phương pháp thực nghiệm để xác định tham số bộ điều khiển PID.Phương pháp thứ nhất dùng mô hình xấp xỉ quán tính bậc nhất có trễ
Trang 1Thiết Kế Bộ Điều Khiển PID
Ziegler và Nichols đưa ra hai phương pháp thực nghiệm để xác định tham số bộ điều
khiển PID.Phương pháp thứ nhất dùng mô hình xấp xỉ quán tính bậc nhất có trễ của đối tượng điều khiển:
( ) 1 delay
ke
Phương pháp thứ hai không cần đến mô hình toán học của đối tượng nhưng chỉ áp dụng cho một số lớp đối tượng nhất định
1 Phương pháp Zieger-Nichols thứ nhất:
Phương pháp này nhằm xác định các tham số K K K cho bộ điều khiển PID trên cơ P, I, D
sở xấp xỉ hàm truyền đạt thành khâu quán tính bậc nhất (1) để hệ kín nhanh chóng về chế
độ xác lập và độ quá điều chỉnh không quá 40%
Đặc tính động học:
Ở đây ta đã mô phỏng với giả thiết xấp xỉ hàm truyền của hệ thống là:
Trang 26.25
( )
12.5 1 s
(Trên thực tế các thông số T delay, ,T k được xác định từ đặc tính động học của hệ hở)
Nếu chọn các tham số cho bộ điều khiển PID theo phương pháp Z-N -1 thì ta có:
0.1481
P
delay
T
K
kT
2
p I
delay
K K T
2
delay p D
2 Phương pháp Zieger-Nichols thứ hai:
Phương pháp Zieger-Nichols thứ hai
Phương pháp này thay bộ điều khiển PID trong hệ kín bằng bộ khuyếch đại,sau đó tăng k cho đến khi hệ nằm ở biên giới ổn định tức là hệ kín trở thành khâu dao động điều
G s
( )t
1 _
Trang 3>> [num_delay,den_delay]=pade(13.5,3);
>> sys=tf(6.25,[12.5 1])*tf(num_delay,den_delay)
Transfer function:
-6.25 s^3 + 5.556 s^2 - 2.058 s + 0.3048
-12.5 s^4 + 12.11 s^3 + 5.004 s^2 + 0.9389 s + 0.04877
>> rlocus(sys);
>> [k,p]=rlocfind(sys)
Select a point in the graphics window
selected_point =
0.0000 + 0.1521i
k =
0.3438
p =
-0.3985 + 0.6092i
-0.3985 - 0.6092i
-0.0000 + 0.1523i
-0.0000 - 0.1523i
Bộ điều
khiển
* 1.2 Tgh
0
Trang 40.5 0 0.5 1 1.5 2
1.5
1
0.5
0
0.5
1
Real Axis
0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
Trang 5>>[Gm,Pm,Wg,Wp] = margin(k*sys)
Gm =
1.0006
Pm =
0.1256
Wg =
0.1523
Wp =
0.1521
>> Tgh=2*pi/Wg
Tgh =
41.2662
Chọn tham số cho bộ điều khiển PID ta có:
p
I I
K K T
,K D K T p D 1.0640
Trang 60 20 40 60 80 100 120 140 160 180 200
0
0.2
0.4
0.6
0.8
1
1.2
1.4
3 Phương pháp dựa vào điều kiện tối ưu chuẩn H :2
Chỉ tiêu tối ưu là 2
0
e t
Trang 7>>
[kp,ki,kd]=run_pid
Directional
Iteration Func-count Residual Step-size derivative Lambda
0 4 5.81452
1 12 4.30085 1.25 -0.284 4.44604
2 19 4.25474 0.948 -0.000296 1.79785
3 27 4.24586 1.75 -1.05e-005 1.806
4 34 4.24396 1.01 -7.01e-008 0.65562
5 42 4.24378 1.26 2.98e-009 0.655853
6 49 4.24376 0.977 4.91e-010 0.327926
7 56 4.24376 1.13 2.33e-010 0.327929
8 63 4.24376 0.95 3.22e-011 0.163964 Optimization terminated: directional derivative along
search direction less than TolFun and infinity-norm of
gradient less than 10*(TolFun+TolX).
kp =
0.1132
ki =
0.0118
kd =
0.8467
function [Kp,Ki,Kd] = run_pid()
pid_model;
pid0 = [0.2063 0.01 1.0640];
pid = lsqnonlin(@pid_lsq, pid0, [], [], options);
[Kp Ki Kd] = pid;
function F = pid_lsq(pid)
[Kp Ki Kd] = pid;
F = yout-1;
end
Trang 80 20 40 60 80 100 120 140 160 180 200
0
0.2
0.4
0.6
0.8
1
1.2
1.4