Môn học:
ĐIỆN TỬ CÔNG NGHIỆP
TS. ĐỗThếCần
Email : [email protected]
Mobile: 0907971768
ĐiềukhiểnPID
2
P:Giá trịtỉ lệxác định tác động của sai số hiện tại
I: giá trịtích phânxác định tác động của tổng các sai số quá khứ
D: giá trịvi phânxác định tác động của tốc độ biến đổi sai số
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu tỉ lệ P
3
=>
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PI (tích phân tỉ lệ)
4
Tại sao gọi tích phân tỉ lệ?
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PD (vi phân tỉ lệ)
5
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
6
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
7
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
8
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
9
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
10
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
11
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
12
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID (vi phân tích phân tỉ lệ)
13
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Khâu PID trong điều khiển động cơ bằng VĐK
•Giả sử ta băm xung để điều khiển động cơ một chiều.
•Ta băm xung với chu kỳ T(đơnvị thời gian) và độ rộng xung X
(đơn vị thời gian).
•Ta Cấp điện áp nguồn vào động cơ là (V-Nguồn).
•Vậy điện áp cấp vào động cơ sẽ là(X * (V-Nguồn)/T)(volt)
•Ví dụ: (V-Nguồn)là 25 V.
•Băm xung với chu kỳ T = 100 s, x = 50s
•Vậy điện áp cấp vào động cơ là 50*25/100 = 12.5 (volt)
14
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Tamuốn động cơ của tôi chạy 100 vòng/phút. Nhưng nó lại đang
chạy 50 vòng / phút. Vậy sai số(ký hiệu là e )e = 100 –50 = 50
vòng/phút. Vậy sai số ở đây là 50 vòng /phút.
•Dựa trên sai số = 50 tức là động cơ còn chạy chậm. Vậy thì ta sẽ tăng
tốc động cơ lên bằng cách tăng độ rộng xung lên
•Nếu e <0 tức động cơ đang chạy quá nhanh thì ta giảm độ rộng xung
xuống.
•Ta có độ rộng xung gần như tỉ lệ thuận với sai số e. Vậy ta có thể viết ra
công thức X = Kp*e (tương ứng với phần tử P).
•Do sai số trả vềquá nhỏlàm giá trị của X cũng quá nhỏ không thể
thay đổi được tộc độ động cơ. nên động cơ cứ chạy ở một tốc độ gần
sát với tốc độ thực tế.
•VD: tốc độ mong muốn là 100vòng / phút. Nhưng tốc độ thực tế lại là
99 vòng / phút.
•Giá trị X = Kp*e lại quá nhỏ không thể tăng tốc độ động cơ lên được
nữa.
•WHAT NEXT?
15
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID:
Trong trườnghợpnàythìtaphảitíchlũydầnsaisốlêntheo
thờigian.Cứsau1thờigiantalạicộngsaisốlênchođếnkhi
nàosaisốđủlớnđểcóthểthayđổiđượctốcđộđộngcơ.Bớivì
saisốđượccộngdồntheothờigianchínhlàphéptíchphân.
NêntagọithànhphânnàylàthànhphầntíchphânI.
•X = K*e + Ki*(tích_phân_của_e_theo_thời_gian_t)
•Ký hiệu tích phân của e theo thời gian là TP(e,t).
•Lúc này ta cóX = Kp*e + Ki*TP(e,t).
16
* Ta có thể hiểuvềP.I.Dnhưsau:
- P:Điềuchỉnhtỉlệtạoratínhiệuđiềuchỉnhtỉlệvớisailệchđầu
vàotheothờigianlấymẫu.
- I:tíchphâncủasailệchtheothờigianlấymẫu.Điềuchỉnhtích
phânchotabiếttổngsaisốtứcthờitheothờigianhaysaisốtích
lũytrongquákhứ.
- D:viphâncủasailệchtheothờigianlấymẫu.Điềuchỉnhviphân
tạoratínhiệuđiềuchỉnhsaochotỉlệvớitốcđộthayđổisailệch
đầuvào.
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Tinh chỉnh PID
•Ta còn chưa tính đến quán tính của trục động cơ và các cơ cấu kèm
theo đó, Giả sử động cơ đang tăng tốc và đến điểm sai số e = 0. Ta
ngừng thay đổibăm xung. Có vẻ tốc độ động cơ sẽ giữ nguyên hoặc
giảm đi. Nhưng không, do quán tính, tốc độ động cơ vẫn tăng thêm.
•=>e < 0.Ta chọn được X nhỏ đi, làm tốc độ động cơ quay chậm lại,
đến vị trí e= 0. Động cơ vẫn không giữ ở tốc độ chuẩn mà theo quán
tính sẽ giảm nữa.
•Việc tốc độ động cơ cứ vượt quá điểm chuẩn 1 chút so với thực tế
được gọi là đáp ứng có dao động.
•Nguyên lý để ngăn chặn dao động này diễn ra là ta sẽ giảm dần sự
thay đổi tốc độ động cơ (tức là giảm gia tốc của động cơ ) khi mà tốc
độ động cơ ngày càng tiếm đến điểm yêu cầu.
•Sự thay đổi sai số được tính theo công thức:Delta_e= e-et.
•e: sai số ở thời điểm hiện tại
•et: sai số ở thời điểm trước
•Thành phần Delta_e chính là thành phần đạo hàm trong PID.
17
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
•Công thức tính độ rộng xung sẽ tính như sau:
•X = Kp*e + Ki*TP(e,t) + Kd*(e –et).
•Thành phần D gần nhưluôn luôn khác dấu với thành phần P và
I. nó có chức năng giảm thành phần P và I. nhờ đó mà giảm sự
vượt quá điểm chuẩn dẫn đến giao động.
•Trong 1 bài toán thực tế: bạn đo tốc độ động cơ bằng encoder,
băm xung ra động cơ theo công thức trên, nhưng doX là độ
rộng xung nên không thể là số âm. Có nhiêu cách để xử lý
trường hợp này
Cách 1: thay đổi lại công thức như sau:
•X = X0 + Kp*e + Ki*TP(e,t) + Kd*(e-et).
•X0 là 1 hằng số để khi Kết quả Kp*e+Ki*TP(e,t)+Kd*(e-et) âm thì X
cũng chỉ đạt đến giá trị nhỏ nhất là 0.
•Cách 2: xử lý bằng thuật toán như sau:
•X = Kp*e+Ki*TP(e,t) + Kd*(e-et)
•If (X < 0 ) X = 0;
•Cách 3: ???
18
Môđun tập hợp
(Assembly module)
Môđun môi trường
(Environment module)
Môđun đo lường
(Measurement module)
Môđun kích truyền động
(Actuation module)
Môđun truyền thông
(Communication module)
Môđun xử lý
(Processor module)
Môđun phần mềm
(Software module)
Môđun giao diện
(Interface module)
19
http://arduino.vn/result/5473-robot-hai-banh-tu-can-bang-2-wheel-self-
balancing-robot
Sơ đồ hiệu chỉnh P.I.D qua biến trở (Z-N 2
nd
method)
Với việc có thêm các biến trở để hiệu chỉnh các hệ số P, I,
D.Các hệ số P, I và D được tìm như sau:
•Đặt tất cả các biến trở P, I, D về 0.
•Tăng dần biến trở P cho đến khi robot bắt đầu dao
động qua lại xung quanh điểm cân bằng nhưng robot
vẫn không bị ngã.
•Tăng dần biến trở D cho đến khi robot không còn
dao động. Lúc này, robot hoạt động tương đối ổn
định nhưng sẽ bị khựng khựng khi bị tác động bằng
tay.
•Tăng dần biến trở I từ từ cho đến khi hệ thống hoạt
động ổn định mượt mà ngay cả khi đẩy mạnh robot
về một phía. Nếu giá trị biến trở I lớn nó sẽ làm cho
robot đáp ứng chậm
Robot 2 bánh tự cân bằng
•Các vấn đề chính:
•Cân bằng
•Điều khiển bằng cách nào ?
•PID
•Trượt (Sliding)
•Cuốn chiếu (Backstepping)
•Điều chỉnh toàn phương tuyến tính
•... ?
•Vi điều khiển (PIC, AVR,...) ?
•Cảm biến (gyroscope, accelerometer, sonar,...)
•...
20
Robot 2 bánh tự cân bằng
•Nhiệm vụ thực thi: Đi thẳng/xoay tại chỗ/rẽ/lên dốc/xuống dốc
21
22
23
24
Nối Driver L298 và Arduino:
Chân “IN1” nối tới chân “7” của Arduino
Chân “IN2” nối tới chân “8” của Arduino
Chân “ENA” nối tới chân “5” của Arduino
Hai chân của OUT1 nối tới động cơ DC
Chân “GND” nối tới chân “GND” của Arduino
Nối ENCODER và Arduino:
Chân “B” nối tới chân “3” của Arduino
Chân “A” nối tới chân “2” của Arduino
Chân “+” nối tới chân “5V” của Arduino
Chân “-” nối tới chân “GND” của Arduino
Nối nguồn với Driver:
Chân “L và N” nối tới 220VAC
Chân “A” nối tới chân “2” của Arduino
Chân “V+” nối tới chân “12V” của Driver L298
Chân “V-” nối tới chân “GND” của Driver L298