Xem mẫu

  1. Thiết kế bộ điều khiển PID Thiế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: T s G(s)  ke delay (1) 1 Ts 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 P , K I , K D cho bộ điều khiển PID trên cơ 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à: Lưu Như Hòa – ĐKTĐ – KSTN – K50 1
  2. Thiết kế bộ điều khiển PID 6.25 13.5s G (s)  e 12.5s  1 (Trên thực tế các thông số Tdelay , 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ó: T Kp T .K KP   0.1481 , K I   0.0055 , K D  delay p  1 kTdelay 2Tdelay 2 2. Phương pháp Zieger-Nichols thứ hai: Phương pháp Zieger-Nichols thứ hai 1( t ) y( t ) _ k G  s 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 hòa.Lúc đó ta có Kgh và chu kỳ của dao động đó là Tgh.Tham số cho bộ điều khiển PID chọn theo bảng sau: Lưu Như Hòa – ĐKTĐ – KSTN – K50 2
  3. Thiết kế bộ điều khiển PID Bộ điều Kp Ti Td khiển P 0,5*Kgh ∞ 0 PI 0,45* Kgh 1 0 * Tgh 1.2 PID 0,6*Kgh 0,5*Tgh 0,125*Tgh >> [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 Lưu Như Hòa – ĐKTĐ – KSTN – K50 3
  4. Thiết kế bộ điều khiển PID Root Locus 1.5 1 0.5 Imaginary Axis 0 ­0.5 ­1 ­1.5 ­0.5 0 0.5 1 1.5 2 Real Axis 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 ­0.2 0 50 100 150 Lưu Như Hòa – ĐKTĐ – KSTN – K50 4
  5. Thiết kế bộ điều khiển PID >>[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ó: K K p  0.6* Kgh  0.2063 , K I  P  0.01 , K D  K pTD  1.0640 TI Lưu Như Hòa – ĐKTĐ – KSTN – K50 5
  6. Thiết kế bộ điều khiển PID 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 20 40 60 80 100 120 140 160 180 200 3. Phương pháp dựa vào điều kiện tối ưu chuẩn H 2 :  2 Chỉ tiêu tối ưu là  e (t )  min 0 Lưu Như Hòa – ĐKTĐ – KSTN – K50 6
  7. Thiết kế bộ điều khiển PID function [Kp,Ki,Kd] = run_pid() >> pid_model; pid0 = [0.2063 0.01 1.0640]; options = optimset('LargeScale','off','Display','iter',... 'TolX',0.0001,'TolFun',0.0001); pid = lsqnonlin(@pid_lsq, pid0, [], [], options); [Kp Ki Kd] = pid; function F = pid_lsq(pid) [Kp Ki Kd] = pid; simopt = simset('solver','ode45','SrcWorkspace','Current'); [tout,xout,yout] = sim('pid_model',[0 200],simopt); F = yout-1; end end [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 Lưu Như Hòa – ĐKTĐ – KSTN – K50 7
  8. Thiết kế bộ điều khiển PID 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 20 40 60 80 100 120 140 160 180 200 Lưu Như Hòa – ĐKTĐ – KSTN – K50 8
nguon tai.lieu . vn