1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển động cơ DC dùng thuật toán PID

19 4,2K 43

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 1,43 MB

Nội dung

Sử dụng vi điều khiển AVR điều khiển động cơ DC bằng phương pháp PID, sử dụng giao diện để điều khiển, cài đặt thông số và vẽ biểu đồ vận tốc động cơ. Bao gồm mạch điện, lưu đồ giải thuật và code.

Trang 1

BỘ MÔN CƠ ĐIỆN TỬ

…o0o…

Trang 2

YÊU CẦU GIỚI HẠN ĐỀ TÀI

- Thiết kế mạch cầu H điều khiển tốc độ động cơ DC theo phương pháp điều chỉnh độ rộng xung (PWM)

- Tìm hiểu thuật toán điều khiển vòng kín PID theo hai phương pháp:

 Ziegler – Nichols (Z – N)

 Cohen – Coon (C – C)

- Viết giao diện chương trình điều khiển động cơ DC theo thuật toán điều khiển vòng kín PID bằng cả hai phương pháp Z – N và C – C

CƠ SỞ LÝ THUYẾT

Giới thiệu chung về thuật toán điều khiển vòng kín 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 công nghiệp Sử dụng bộ điều khiển PID để điều chỉnh sai lệch giữa giá trị đo được của hệ thống (process variable) với giá trị đặt (setpoint) bằng cách tính toán và điều chỉnh giá trị điều khiển ở ngõ ra

Sơ đồ hệ thống điều khiển dùng PID Một bộ điều khiển PID gồm 3 thành phần:

 Khâu P (proportional) – tạo tín hiệu điều khiển tỉ lệ với sai lệch (error – e)

 Khâu I (integral) – tạo tín hiệu điều khiển tỉ lệ với tích phân theo thời gian của sai lệch

 Khâu D (derivative) – tạo tín hiệu điều khiển tỉ lệ với vi phân theo thời gian của sai lệch

Trang 3

Bảng sau cho ta thấy rõ ảnh hưởng của các thông số KP, KI, KD đến hệ thống điều khiển bằng PID:

Effects of increasing parameters

Parameter Rise Time Overshoot Settling Time S.S Error

K p Decrease Increase Small Change Decrease

K d Small Change Decrease Decrease None

Nhận xét:

 KP dùng để giảm thời gian tăng trưởng

 KD dùng để giảm độ vọt lố và thời gian xác lập

 KI dùng để loại trừ sai số ở trạng thái ổn định

Rời rạc hóa bộ điều khiển PID

Hàm truyền của bộ điều khiển PID theo thời gian:

( )

u t K e t K e t dt K

dt

Bộ điều khiển số không thể lấy mẫu liên tục theo thời gian nên cần phải rời rạc hóa các khâu của bộ hiệu chỉnh PID:

 Khâu tỉ lệ: K e tP ( ) ≈ K e nP ( )

 Khâu tích phân:

0 0

K e t dt ∫ ≈ K Te n

 Khâu vi phân: ( ) [ ( ) ( 1)]

S

Suy ra hàm truyền của bộ điều khiển PID số sẽ là:

0

1

S

T

Với: i P

i

K K T

= ; K d = K T P D

Bộ điều khiển PID rời rạc đọc sai số, tính toán và xuất ngõ ra điều khiển theo một khoảng thời gian xác định (không liên tục) gọi là thời gian lấy mẫu (T) Thời gian lấy mẫu cần nhỏ hơn đơn vị thời gian của hệ thống

Trang 4

Thiết kế bộ PID số theo phương pháp Ziegler – Nichols (Z – N)

Z – N là phương pháp thiết kế bằng thực nghiệm, được sử dụng trong trường hợp không thể xây dựng mô hình toán học cho đối tượng điều khiển

Điều kiện: khi đưa trạng thái làm việc của hệ đến biên giới ổn định thì mọi giá trị của tín hiệu trong hệ thống điều phải nằm trong giới hạn cho phép

Các bước tiến hành:

- Trước tiên, sử dụng bộ P lắp vào hệ kín (hoặc dùng bộ PID và chỉnh các thành phần KI và KD về giá trị 0) Khởi động quá trình với hệ số khuếch đại KP thấp, sau đó tăng dần KP tới giá trị tới hạn Kgh để hệ kín

ở chế độ giới hạn ổn định, tức là tín hiệu ra h(t) có dạng dao động điều hòa Xác định chu kỳ tới hạn Tgh của dao động

- Xác định thông số của bộ điều khiển theo bảng sau :

//Một số tài liệu ghi là TN = 0,85 Tgh (bộ điều khiển PI) TV = 0,12 Tgh (bộ điều khiển PID)

Hệ số tích phân : I P

N

K

K =

T

Hệ số vi phân : K = K TD P V

Trang 5

Thiết kế bộ PID số theo phương pháp Cohen – Coon (C – C)

C – C là phương pháp thiết kế dựa trên một số đáp ứng điển hình của hệ thống, cung cấp khả năng ước lượng để tính toán các thông số của hệ thống

Các bước thực hiện:

- Khởi động hệ thống và đợi cho trạng thái tương đối ổn định

- Tạo một bước nhảy của tín hiệu đầu vào

- Quan sát đáp ứng đầu ra sau một khoảng thời gian

- Dựa vào đáp ứng đầu ra, xác định các thông số (bằng phép đo):

 t0: Thời điểm bắt đầu thực hiện bước nhảy của tín hiệu đầu vào

 t2: Thời điểm giá trị của tín hiệu đầu ra thực hiện được nửa bước nhảy (0.5B)

 t3: Thời điểm giá trị của tín hiệu đầu ra đạt được 63.2% bước nhảy (0.632B)

 A: Độ lớn bước nhảy của tín hiệu đầu vào

 B: Độ lớn bước nhảy của tín hiệu đầu ra

- Từ đó suy ra các thông số quá trình:

 t1 = (t2 - ln(2) t3)/(1 - ln(2))

 τ = t 3 - t 1

 τDEL = t 1 - t 0

 K = B/A

Trang 6

- Dựa vào các thông số K, τ và τDEL ta có thể tính được KC, TI và TD dựa theo các biểu thức trong bảng dưới đây:

- Cuối cùng thu được các thông số đặc trưng của bộ PID số:

 KP = KC

 KI = KC/tI

 KD = KC*tD

So sánh giữa Z – N và C – C

 Cả 2 phương pháp này đều cung cấp khả năng ước lượng các thông số quá trình của bộ PID số

 Phương pháp Z – N đòi hỏi phải theo thực nghiệm là chính

 Phương pháp C – C yêu cầu tính toán nhiều hơn là thực nghiệm

Trang 7

THIẾT KẾ VÀ THI CÔNG

Sơ đồ khối của mô hình thi công:

Mạch nguyên lý của khối điều khiển:

Mạch nguyên lý của khối hồi tiếp vận tốc từ Encorder:

Trang 8

Mạch nguyên lý của khối cách ly:

Mạch nguyên lý của khối công suất:

Trang 9

Tính toán Encorder:

Tần số đáp ứng:

Động cơ dùng Encorder Incremental với 2 kênh xung A (dây trắng) và B (dây vàng) với thông số là 100 xung/vòng cho mỗi kênh  Để tăng độ phân giải lên 4 lần (tức 400 xung/vòng), ta thiết kế mạch hồi tiếp tốc độ như sau:

 Dùng 1 cổng EX-OR (74HC86) để bắt tất cả các cạnh lên và cạnh xuống của 2 kênh xung A và B

 Cho vi điều khiển nhận ngắt ngoài với bất cứ sự thay đổi nào của đầu vào là ngõ ra của cổng EX-OR trên

Tốc độ tối đa của động cơ khoảng 3800 vòng/phút ở điện áp nguồn 24VDC Suy ra tần số tối đa của Encoder là: max_encoder = 3800* 400 0,025Mhz

f

Ở đây dùng vi điều khiển ATMEGA32 với tần số thạch anh ngoại là 16Mhz

 hoàn toàn đáp ứng được tần số của Encorder

Chu kỳ lấy mẫu (T mẫu ):

Trong chương trình Codevision dùng biến đếm count kiểu nguyên không dấu unsigned long (16 bit) có giá trị lớn nhất là 65535.

Ta có: max_encoder mau mau 6

65535

0,025*10

f

Như vậy chọn Tmẫu = 10 ms là hoàn toàn thỏa mãn điều kiện trên

Sai số khi lấy mẫu với T mẫu = 10 ms:

Cứ 10 ms lấy mẫu sẽ đếm được count xung  1 phút = 60000 ms lấy mẫu

sẽ đếm được 6000*count xung Mặt khác, mạch hồi tiếp Encorder cho 400

xung/vòng  Tốc độ đáp ứng của động cơ sẽ là:

6000*count/400 = 15*count (vòng/phút)

Do sử dụng biến đếm count kiểu nguyên nên sai số của count sẽ là ±1  sai

số của tốc độ đáp ứng là ±15 vòng/phút

Trang 10

VẤN ĐỀ VÀ GIẢI PHÁP

Trong phương pháp C – C khi hệ đáp ứng quá chậm (t3 đủ lớn) thì sẽ xảy ra trường hợp t1<0 [vì t1 = (t2 - ln(2) t3)/(1 - ln(2))]  Lấy gốc thời gian tính toán tại t0 để giảm thiểu trường hợp đặc biệt này

Tính toán các thông số của phương pháp C – C khi lấy thời điểm bắt đầu thực hiện bước nhảy t0 của tín hiệu đầu vào làm gốc thời gian:

T0 = t0 – t0 = 0;

T2 = t2 - t0;

T3 = t3 - t0;

T1 = (T2 - 0.69315 * T3) * 0.30685;

t = T3 - T1;

tdel = T1 – T0 = T1;

K = B / A;

r = tdel / t;

Kp = (16 + 3 * r) / (12 * K * r);

tI = tdel * (32 + 6 * r) / (13 + 8 * r);

tD = tdel * 4 / (11 + 2 * r);

Ki = Kp / tI;

Kd = Kp * tD;

Trang 11

Đồ thị Teechart trên PC vẽ không kịp do hai nguyên nhân:

 Cứ 10ms vi điều khiển gửi thông số lên PC một lần là quá nhanh nên card màn hình onboard không thể đáp ứng kịp

 Tăng thời gian giãn cách giữa các lần gửi lên 60ms

 Các sự kiện trong lập trình đồ họa thuộc luồng GUI Thread (luồng chính MainThread của C#), còn sự kiện

serialPort1_DataReceived thuộc luồng ThreadPool Thread

(tức non-GUI Thread) Khi chương trình C# chạy nó nhảy qua nhảy lại giữa hai luồng này làm giảm tốc độ đáp ứng của chương trình nên Teechart vẽ không kịp

 Dùng thêm câu lệnh this.Invoke(new

EventHandler(communication)); trong hàm sự kiện

serialPort1_DataReceived để chuyển sự kiện này sang luồng

chính nhằm cải thiện tốc độ đáp ứng của chương trình

Hàm lệ thuộc giữa giá trị PWM và tốc độ động cơ không phải là hàm tuyến tính  Viết chương trình giao diện đồ thị Teechart biểu thị mối quan hệ giữa PWM và tốc độ tương ứng của động cơ (dùng Timer tạo

sự kiện mỗi lần Timer_Tick thì tăng PWM lên 30 đơn vị và hồi tiếp

về tốc độ động cơ tương ứng để vẽ lên đồ thị Teechart)

Từ đồ thị Teechart ta gióng các giá trị tương ứng của PWM và tốc độ động cơ Trong giao diện của phương pháp C – C ta lập bảng tra các giá trị tương ứng của SP (tốc độ đặt trên PC) và PWM (truyền xuống điều khiển động cơ)

Trang 12

LƯU ĐỒ GIẢI THUẬT

Trang 13

KẾT QUẢ ĐẠT ĐƯỢC Phương pháp Z – N:

Trang 14

Từ đồ thị trên ta tính được Tgh = (960-780)/60 = 3 (chia 60 vì đơn vị trục thời gian là 60ms) Suy ra Kp, Ki, Kd như sau:

Trang 16

Phương pháp C – C với tín hiệu vào (SP) nhảy từ 1500 lên 2490:

Trang 17

Bộ thông số Kp, Ki, Kd dò được dựa theo kết quả bộ thông số của

phương pháp Z – N:

Trang 18

Bộ thông số Kp, Ki, Kd dò được dựa theo kết quả bộ thông số của

phương pháp C – C:

Trang 19

KẾT LUẬN VÀ ĐỀ NGHỊ

Nhận thấy kết quả KP, KI, KD ở hai phương pháp Z – N và C – C là khác nhau, do đó khi tùy chỉnh nên sử dụng tối ưu nguyên lý điều khiển và phải kiểm tra lại độ chắc chắn của từng phương pháp

Thường thì Z – N dùng để tùy chỉnh theo thực nghiệm, còn C – C dùng để tính toán kiểm nghiệm lại kết quả Nhưng không hẳn là phương pháp C – C đã có độ tin cậy cao hơn phương pháp thực nghiệm Z – N

Kết quả của hai phương pháp chỉ là bộ thông số thô, nhưng dựa vào

đó ta có thể dò tìm được các bộ thông số chuẩn khác nhau cho động

cơ Như vậy bộ thông số PID của động cơ không phải là duy nhất, nó còn phụ thuộc vào nhiều yếu tố khác nhau trong hệ thống điều khiển

Source code và giao diện download tai đây:

https://www.mediafire.com/?nifj9d57afjw8ud

Ngày đăng: 28/05/2014, 17:03

HÌNH ẢNH LIÊN QUAN

Sơ đồ hệ thống điều khiển dùng PID Một bộ điều khiển PID gồm 3 thành phần: - Điều khiển động cơ DC dùng thuật toán PID
Sơ đồ h ệ thống điều khiển dùng PID Một bộ điều khiển PID gồm 3 thành phần: (Trang 2)
Sơ đồ khối của mô hình thi công: - Điều khiển động cơ DC dùng thuật toán PID
Sơ đồ kh ối của mô hình thi công: (Trang 7)
Đồ thị Teechart trên PC vẽ không kịp do hai nguyên nhân: - Điều khiển động cơ DC dùng thuật toán PID
th ị Teechart trên PC vẽ không kịp do hai nguyên nhân: (Trang 11)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w