2.3.3.1 Giới thiệu PID.
Bộ điều khiển PID là một bộ điều khiển vòng kín được sử dụng rộng rãi
trong hệ thống điện, hệ thống tự động, điện tử. Mục tiêu của bộ điều khiển PID là điều chỉnh giá trị điều khiển ở ngõ ra Ouput sao cho sai lệch Error e(t) = (SP – PV) giữa giá trị đo được của hệ thống PV (Process Variable) với giá trị cài đặt SP (SetPoint) nhỏ nhất có thể (~ 0), đạt được sự ổn định và có đáp ứng nhanh.
Sơ đồ khối của bộ P.I.D điều khiển động cơ DC Servo Motor cho dự án như sau:
Hình 2. 16: Sơ đồ khối của bộ P.I.D điều khiển động cơ DC
Sơ đồ điều khiển PID được đặt tên theo ba khâu hiệu chỉnh của nó, tổng của ba khâu này tạo thành bởi các biến điều khiển (MV). Ta có:
Trong đó:
là các thành phần đầu ra từ ba khâu của bộ điều khiển PID, được xác định như dưới đây.
Khâu tỉ lệ
Khâu tỉ lệ (đôi khi còn được gọi là độ lợi) làm thay đổi giá trị đầu ra, tỉ lệ với giá trị sai số hiện tại. Đáp ứng tỉ lệ có thể được điều chỉnh bằng cách nhân sai số đó với một hằng số Kp, được gọi là độ lợi tỉ lệ.
ĐỒ ÁN TỐT NGHỆP
---
Hình 2. 17: Đồ thị PV theo thời gian Kp
Khâu tích phân
Phân phối của khâu tích phân (đôi khi còn gọi là reset) tỉ lệ thuận với cả biên độ sai số lẫn quảng thời gian xảy ra sai số. Tổng sai số tức thời theo thời gian (tích phân sai số) cho ta tích lũy bù đã được hiệu chỉnh trước đó. Tích lũy sai số sau đó được nhân với độ lợi tích phân và cộng với tín hiệu đầu ra của bộ điều khiển. Biên độ phân phối của khâu tích phân trên tất cả tác động điều chỉnh được xác định bởi độ lợi tích phân, Ki.
Hình 2. 18: Đồ thị PV theo thời gian Ki
Khâu tích phân (khi cộng thêm khâu tỉ lệ) sẽ tăng tốc chuyển động của quá trình tới điểm đặt và khử số dư sai số ổn định với một tỉ lệ chỉ phụ thuộc vào bộ điều khiển. Tuy nhiên, vì khâu tích phân là đáp ứng của sai số tích lũy trong quá khứ, nó có thể khiến giá trị hiện tại vọt lố qua giá trị đặt (ngang qua điểm đặt và tạo ra một độ lệch với các hướng khác).
Khâu vi phân
Tốc độ thay đổi của sai số qua trình được tính toán bằng cách xác định độ dốc của sai số theo thời gian (tức là đạo hàm bậc một theo thời gian) và nhân tốc độ này với độ lợi tỉ lệ Kd. Biên độ của phân phối khâu vi phân (đôi khi được gọi là tốc độ) trên tất cả các hành vi điều khiển được giới hạn bởi độ lợi vi phân, Kd.
ĐỒ ÁN TỐT NGHỆP
---
Hình 2. 19: Đồ thị PV theo thời gian Kd
Tóm lại
Khâu tỉ lệ, tích phân, vi phân được cộng lại với nhau để tính toán đầu ra của bộ điều khiển PID. Định nghĩa rằng U(t) là đầu ra của bộ điều khiển, biểu thức cuối cùng của giải thuật PID là:
trong đó các thông số điều chỉnh là:
Độ lợi tỉ lệ, Kp: giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn,
bù khâu tỉ lệ càng lớn. Một giá trị độ lợi tỉ lệ quá lớn sẽ dẫn đến quá trình mất ổn định và dao động.
Độ lợi tích phân, Ki: giá trị càng lớn kéo theo sai số ổn định bị khử càng
nhanh. Đổi lại là độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái ổn định.
Độ lợi vi phân, Kd: giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm
đáp ứng quá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số.
2.3.3.2. Hàm truyền
Bộ điều khiển gồm có 3 thành phần: KP: hệ số tỷ lệ
KI : hệ số tích phân KD: hệ số vi phân
Xét 1 hệ thống có sơ đồ khối như sau:
Hình 2. 20: Sơ đồ khối của một hệ thống
Plant: đối tượng cần điều khiển
Controller: đưa tín hiệu điều khiển đối tượng, được thiết kế để hệ thống đạt đáp ứng mong muốn .
Biến e là thành phần sai lệch, là hiệu giữa giá trị tín hiệu vào mong muốn và tín hiệu ra thực tế. Tín hiệu sai lệch (e) sẽ đưa tới bộ PID, và bộ điều khiển tính toán cả thành phần tích phân lẫn vi phân của (e). Tín hiệu ra (u) của bộ điều khiển bằng:
Lúc này đối tượng điều khiển có tín hiệu vào là (u), và tín hiệu ra là (Y). (Y) được hồi tiếp về bằng các cảm biến để tiếp tục tính sai lệch (e). Và bộ điều khiển lại tiếp tục như trên.
2.3.3.3. Đặc tính bộ điều khiển PID
Thành phần tỉ lệ (Kp) có tác dụng làm tăng tốc độ đáp ứng của hệ, và làm giảm chứ không triệt tiêu sai số xác lập của hệ (steadystate error).
Thành phần tích phân (Ki) có tác dụng triệt tiêu sai số xác lập nhưng có thể làm giảm tốc độ đáp ứng của hệ.
Thành phần vi phân (Kd) làm tăng độ ổn định hệ thống, giảm độ vọt lố và cải thiện tốc độ đáp ứng của hệ.
Ảnh hưởng của các thành phần Kp, Ki, Kd đối với hệ kín được tóm tắt trong bảng sau:
ĐỒ ÁN TỐT NGHỆP
--- Lưu ý rằng quan hệ này không phải chính xác tuyệt đối vì Kp, Ki và Kd còn phụ thuộc vào nhau. Trên thực tế, thay đổi một thành phần có thể ảnh hưởng đến hai thành phần còn lại. Vì vậy bảng trên chỉ có tác dụng tham khảo khi chọn Kp, Ki, Kd.
2.3.3.4. Sơ đồ khối hệ thống
Hình 2. 21: Sơ đồ khối hệ thống
PC: Gửi giá trị cài đặt và nhận tốc độ hiện tại của động cơ. Và điều khiển chạy hoặc ngừng chạy của hệ thống.
Arduino Uno: Bộ điều khiển trung tâm với giải thuật PID, nhận giá trị cài đặt từ máy tính. Điều khiển động cơ qua L298, thông qua encoder lấy tốc độ và vị trí hiện tại gửi cho máy tính và hiển thị lên màn hình.
L298V3: có nhiệm vụ nhận tín hiệu xung PWM, điều khiển mức điện áp vào động cơ.
DC Servo, Encoder: Dựa vào mức điện áp mà L298 cấp vào động cơ, động cơ hoạt động với tốc độ và vị trí mong muốn. Encoder dùng để lấy tốc độ và vị trí về cho Arduino.
2.3.3.5 Lưu đồ giải thuật
Hình 2. 22: Lưu đồ giải thuật
Trong lưu đồ giải thuật nay dữ liệu sẽ được lấy từ hệ thông tức lấy từ dữ liệu mong muốn từ người dùng sau đó lấy dữ liệu đật được từ encoder sau đó tính toán sai số rồi đưa vào bộ PID rồi quay lại vị trí lấy tín hiệu cứ như vậy cho đến khi sai số là nhỏ nhất(~0).
ĐỒ ÁN TỐT NGHỆP
---
2.4 Kết luận chương
Trong chương này em đã thực hiện tìm hiểu linh kiện, vẽ sơ đồ nguyên lý của hệ thống, xây dựng chương trình cho hệ thống mô hình cánh tay hỗ trợ ăn uống cho người khuyết tật và tìm hiểu thuật toán PID điều khiển vị trí và tốc độ động cơ encoder. Sang chương 3 em sẽ trình bày các bước thiết kế mô hình và thiết kế sản phẩm hoàn chỉnh và thông số đo đạt của thiết bị.
CHƯƠNG 3. HOÀN THIỆN HỆ THỐNG VÀ THÔNG SỐ ĐO ĐƯỢC 3.1 Các bước thực hiện
Bước 1: Chế tạo
- Cấp nguồn 12V cho Arduino và L298 qua 2 chân V-in và GND - Cấp nguồn 5V cho Module nhận dạng giọng nói VR3 qua chân 5V
và GND của Arduino Uno.
- Nối dây Arduino Uno R3với Module VR3:
ARUDINO VOICE RECOGNITION
MODULE V3
5V 5V
8 TX
9 RX
GND GND
Bảng 3: Ghép nối Arduino Uno R3 với Module VR3
- Nối dây Arduino Uno R3 với Module L298:
ARDUINO L298 4 IN1 5 IN2 6 IN3 7 IN4 GND GND
Bảng 4: Ghép nối Arduino Uno R3 với Module L298
- Nối dây Arduino Uno R3 với động cơ DC Encoder:
ARDUINO DC encoder
2 A
7 B
VCC VCC
GND GND
ĐỒ ÁN TỐT NGHỆP
--- Bước 2: Hoàn thiện sản phẩm
ĐỒ ÁN TỐT NGHỆP
---
Hình 3. 2: Thiết kế hoàn thiện phần cánh tay in 3D
Ở đây cánh tay robot đút thức ăn được thiết kế 3 bậc tự do, với 3 động cơ DC encoder tại mỗi khớp và 1 động cơ encoder tại trục xoay
Bước 3: Kiểm thử
Hoàn thiện phần cứng, cấp nguồn cho thiết bị chạy thử không xảy ra hiện tượng chập cháy.
Tiến hành nạp chương trình điều khiển cho thiết bị:
Bước 1: Chọn Tools -> board:”Arduino/Genuino uno’’
ĐỒ ÁN TỐT NGHỆP
--- Bước 2: Chọn Tools -> Port :”COM3”
Bước 3: Nạp chương trình bằng phần mềm Arduino IDE
Hình 3. 6: Nạp code chương trình cho hệ thống
Để có thể thực hiện việc nhân giọng nói và lưu giọng nói ta thực hiện như sau:
Các bước tiến hành điều khiển:
1.Add thư viện Voice Recognition V3 library trên Arduino IDE. 2.Mở filevr_sample_train và chạy chương trình để cài đặt giọng nó.
ĐỒ ÁN TỐT NGHỆP
---
Hình 3. 7: Cửa sổ Serial Monitor
4.Gõ setting và click Send
5. Sau đó gõ sigtrain 0 On và click Send. Trong đó: sigtrain là cú pháp cài đặt giọng nói.
0 là số thứ tự giọng nói(tăng dần theo số âm, tối đa là 6) On là tên âm(có thể thay đổi tùy vào âm phát ra).
Bắt đầu cài đặt âm khi có tín hiệu Speak now và kết thúc khi có tín hiệu SIG:
On
Hình 3. 9: Sigtrain 0
ĐỒ ÁN TỐT NGHỆP
---
Hình 3. 10: Sigtrain 1
6. Gõ load 0 1 và click Send để lưu âm phát ra từ giọng nói.
Hình 3. 11: Load
Vậy là việc cài đặt âm phát ra từ giọng nói đã thành công.
7. Tiếp theo ta mở file vr_sample_control_led ra, dựa vào code trong file điều khiển led này ta thực hiện code điều khiển động cơ .
3.2 Thông số đọc được khi sử dụng thuật toán PID để điều khiểnVị trí đặt Kp Ki Kd Vị trí đạt được Sai số Vị trí đặt Kp Ki Kd Vị trí đạt được Sai số Lần 1 1000 0.5 0.05 4 952 48