jelly_vn2001

New Member

Download miễn phí Luận văn Điều khiển vận tốc hệ định vị đa tải bằng thuật toán PID


LỜI MỞ ĐẦU


Ngày nay, khoa học kỹ thuật đạt rất nhiều tiến bộ trong lĩnh vực điều khiển tự động hóa. Các hệ thống điều khiển được áp dụng các quy luật điều khiển cổ điển, điều khiển hiện đại, cho tới điều khiển thông minh, điều khiển bằng trí tuệ nhân tạo. Kết quả thu được là hệ thống hoạt động với độ chính xác cao, tính ổn định bền vững, và thời gian đáp ứng nhanh. Trong điều khiển công nghiệp, bộ điều khiến PID là sự lựa chọn chung, tối ưu nhất cho các hệ thống điều khiển có hàm truyền (phương trình trạng thái) như điều khiển vị trí, điều khiển vận tốc, điều khiển mức
Dùng máy tính để hiển thị trạng thái làm việc được sử dụng rộng rãi. Trong lĩnh vực tự động hóa trong công nghiệp, WinCC là một trong những phần mềm chuyên dùng của hãng Siemens để quản lý, thu thập dữ liệu và điều khiển quá trình công nghiệp. Xuất phát từ thực tế đó, bằng những kiến thức đã được học và được đọc ở trường cùng với những kiến thức tìm tòi từ báo chí sách vở và Internet chúng tui đã quyết định tìm hiểu về đề tài: “ĐIỀU KHIỂN VẬN TỐC HỆ ĐỊNH VỊ ĐA TẢI BẰNG THUẬT TOÁN PID ”
Trong thời gian thực hiện đề tài chúng tui không tránh khỏi những thiếu sót mong thầy cô và các bạn đóng góp thêm để hoàn thiện đề tài hơn nữa.

SƠ LƯỢC ĐỀ TÀI

Mục tiêu đề tài.Mục tiêu của đề tài là xây dựng mô hình điều khiển vận tốc không phụ thuộc tải trọng. Điều khiển tốc độ ổn định của chuyển động quay thành tịnh tiến. Trong thời gian nhận đề tài, mục tiêu thực hiện đề tài được đề ra như sau:
- Tìm hiểu và thiết kế giao diện điều khiển bằng WinCC.
- Tìm hiểu cách kết nối và điều khiển giữa WinCC, PLC và động cơ DC, encoder, cảm biến
- Tìm hiểu bộ HSC, điều xung PWM trong PLC.

Tính toán các tham số động lực học, hàm trạng thái (space – state) của mô hình.Xây dựng hàm truyền động học cho hệ thống.Xây dựng, lập trình thuật toán PID, điều khiển động cơ DC.Xây dựng giao diện tổng quan điều khiển trên WinCC 7.0.Thiết kế bản vẽ, xây dựng và lắp ráp mô hình thực.Lựa chọn cảm biến góc (encoder), và cảm biến vị trí.Thiết kế mạch cầu ‘H’, bốn MOSFET điều khiển động cơ.
Phương pháp nghiên cứu.Tiếp cận, xây dựng mô hình lý thuyết gồm có.
Tiếp cận các mô hình tương tự.Tiếp cận lý thuyết điều khiển.Tiếp cận, xây đựng mô hình thực:
Thiết kế mô hình cơ khí.Ứng dụng Matlab trong phân tích và thiết lập hàm truyền.Mô phỏng hàm truyền bằng Matlab.Các phương pháp cảm biến góc và vị trí.Thiết kế mạch điều khiển.Lập trình các vòng điều khiển.Chạy mô hình thực và hiệu chỉnh các thông số.Ghi chép lại đầy đủ các lần hiệu chỉnh, chọn ra thông số ổn định nhất.

Sau khi hoành thành xong đồ án, chúng tui xin tóm tắt lại những vấn đề như sau:
Những công việc đã làm được:

Tìm hiểu rõ bộ điều khiển PID.Xây dựng được phương trình động học cho hệ thống.Xây dựng được hàm truyền và mô phỏng bằng Matlab.Tìm hiểu rõ chương trình WinCC để thiết kế được giao diện điều khiển trực quan, dể điều khiển, liên kết với các biến trong PC ACCESS để điều khiển PLC.Thiết kế được mạch điều khiển động cơ DC bằng FET đảo chiều bằng cầu H, Relay.
- Mạch đọc xung Encoder hai pha A và B.

Tìm hiểu và sử dụng được các thuật toán, các bộ HSC, PWM, PID trong PLC.Các bộ điều khiển PID điều khiển động cơ rất tốt thời gian xác lập nhỏ, sai số không đáng kể, các thông số của bộ điều khiển ổn định đáp ứng tốt ưu cầu đặt ra.
Những việc chưa làm được:
- Khi động cơ có tốc độ lớn thì nếu vận tốc đặt nhỏ thì bộ điều khiển làm việc chưa được tốt còn có ít sai số trong khoảng thời gian xác lập.
- Vì cơ khí được thiết kế và thi công thủ công nên còn sai số, do vậy đã ảnh hưởng đến việc điều khiển chính xác.
- Do thời gian hạn chế nên chưa thiết kế được giao diện mô phỏng trên Matlab một cách trực quan.
MỤC LỤC
PHẦN MỞ ĐẦU . 1
LỜI CẢM ƠN . 2
SƠ LƯỢC ĐỀ TÀI . 3
Phần A : TỔNG QUAN LÝ THUYẾT . 5
Chương I: CƠ SỞ LÝ THUYẾT . 6
1. Khảo sát chuyển động thẳng đều 6
1.1 Độ dời 6
1.1.1 Độ dời . 6
1.1.2 Độ dời trong chuyển động thẳng . 6
1.2. Độ dời và quãng đường đi 6
1.3. Vận tốc trung bình . 6
1.4. Vận tốc tức thời . 6
1.5. Chuyển động thẳng đều 6
1.5.1 Định nghĩa 6
1.5.2 Phương trình chuyển động 7
1.6. Đồ thị . 7
1.6.1 Đồ thị tọa độ 7
1.6.2 Đồ thị vận tốc 8
2. Thiết lập hàm truyền động học 8
2.1. Phân tích truyền động của hệ thống . 8
2.2. Xây dựng hàm truyền hệ thống . 9
3. Cơ sở thuật toán PID . 11
3.1 PID là gì? . 11
3.2 .Lý thuyết liên quan 12
3.2.1.Sai số xác lập 12
3.2.2. Độ vọt lố 13
3.2.3. Thời gian đáp ứng 13
3.2.4. Ảnh hưởng của cực và zero . 13
3.2.5 Hiệu chỉnh PID . 14
3.2.5.1. Hiệu chỉnh tỉ lệ P (Proportional) . 14
3.2.5.2. Hiệu chỉnh vi phân tỉ lệ PD(ProportionalDerivative) 16
3.2.5.3. Hiệu chỉnh tích phân tỉ lệ PI (Proportional Integral) 18
3.2.5.4. Hiệu chỉnh vi tích phân tỉ lệ PID (Proportional Integral Derivative) 21
4. Hệ thống điều khiển rời rạc 23
4.1.Khái niệm 23
4.2.Đặc điểm lấy mẫu 25
4.3. Khâu giữ dữ liệu . 27
4.4. Phép biến đổi Z 30
4.4.1. Tính tuyến tính . 30
4.4.2. Dời trong miền thời gian . 30
4.4.3. Tỉ lệ trong miền Z 31
4.4.4. Đạo hàm trong miền Z . 31
4.4.5. Định lý giá trị đầu 31
4.4.6. Định lý giá trị cuối . 31
4.5. Biến đổi Z của các hàm cơ bản . 32
4.5.1- Hàm dirac . 32
4.5.2. Hàm nấc đơn vị 32
4.5.3. Hàm dốc đơn vị 32
4.5.4. Hàm mũ . 33
5. Tìm hiểu ứng dụng Matlab trong việc phân tích và thiết kế hệ thống điều khiển rời rạc 34
5.1 Hàm chuyển đổi giữa phương trình trạng thái và hàm truyền hệ rời rạc trong Matlab 36
5.2. Phương trình trạng thái hệ rời rạc . 37
5.3. Khảo sát tính ổn định và đáp ứng quá độ của hệ rời rạc . 38
5.4. Quỹ đạo nghiệm số hệ rời rạc . 41
6. Xây dựng hàm truyền bằng thuật toán PID 42
6.1.Hàm truyền của các khâu hiệu chỉnh rời rạc . 42
6.1.1. Khâu tỉ lệ . 42
6.1.2. Khâu vi phân 42
6.1.3. Khâu tích phân . 43
6.1.4. Bộ điều khiển PI, PD, PID rời rạc 44
6.2 Xây dựng hàm truyền PID trong S7-200 45
6.3 Ứng dụng Matlab thiết kế và mô phỏng bộ điều khiển PID cho hệ . thống 49
Chương II: SƠ LƯỢC WINCC 59
1. Giới thiệu WinCC . 59
2. Tạo biến nội 61
3. Thiết lập giao diện và thuộc tính . 62
4. Một số câu lệnh thường dung trong chương trình . 67
Chương III: SƠ LƯỢC PC ACCESS 68
Chương IV: SƠ LƯỢC PLC S7-200 69
1. Giới thiệu PLC S7-200 224DC . 69
2. Cấu trúc, nguyên lý hoạt động của PLC S7-200, CPU 224 70
2.1. Cấu trúc 70
2.2. Nguyên lý hoạt động 71
2.2.1 Đơn vị xử lý trung tâm 71
2.2.2 Hệ thống bus . 71
2.2.3 Bộ nhớ . 71
3. Cách kết nối PLC và giao tiếp với máy tính . 72
4. High Speed Counter . 75
5. Điều xung, tần số (PWM,PTO) . 80
5.1. Điều rộng xung 50%(PTO) 80
5.2. Điều rộng xung theo tỉ lệ (PWM) . 81
6. PID 82
6.1 Giới thiệu lệnh vòng lặp PID trong S7-200 . 82
6.2 Cách sử dụng PID Wizard 84
Chương V: GIAO TIẾP GIỮA PLC VÀ WINCC 88
1. Giới thiệu về giao tiếp giữa PLC và WINCC 88
1.1. Cách thức giao tiếp PC access . 88
1.2. Hiển thị gia trị trên Tag logging 90
2. Vẽ đồ thị giám sát . 92
3. Alarm logging . 93
Chương VI: CẢM BIẾN VÀ CƠ CẤU CHẤP HÀNH 98
1. Cảm biến từ . 98
2. Encoder 99
2.1. Cấu tạo chính của Encoder 99
2.2. Nguyên lý cơ bản . 101
3. Động cơ DC . 102
3.1 Cấu tạo 103
3.2 Nguyên lý hoạt động . 104
3.3 Điều khiển tốc độ động cơ DC . 104
Phần B: THIẾT KẾ VÀ THI CÔNG . 106
Chương I: THIẾT KẾ CƠ KHÍ 107
1. Cơ cấu lấy tải 107
2. Cơ cấu trục chính . 108
Chương II: THIẾT KẾ MẠCH ĐIỀU KHIỂN 109
1. Khối nguồn . 109
2. Khối điều khiển động cơ . 109
3. Khối đọc xung Encoder 109
4. Khối driver(Cầu H) 110
Chương III: LƯU ĐỒ GIẢI THUẬT 111
1. Giải thuật chương trình chính 111
2. Giải thuật thuật toán PID 112
Chương IV: GIAO DIỆN CHƯƠNG TRÌNH 113
TÀI LIỆU THAM KHẢO . 114


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

c thay thế bởi chính giá trị MIn đó với khả năng có thể bị điều chỉnh hay cắt (chặn giới hạn), điều này sẽ được nói rõ ở phần sau. Giá trị ban đầu của bias MX, Mi thường được lấy là giá trị của đầu ra bộ PID ngay trước thời điểm thực hiện lệnh PID lần đầu tiên. Các hằng số khác ảnh hưởng đến thành phần này là: Kc - hằng số khuếch đại, Ts - thời gian lấy mẫu và Ti - hệ số tích phân là đặc trưng cho ảnh hưởng của thành phần này lên toàn bộ đại lượng xử lý.
- Thành phần vi phân (differential) MD tỉ lệ với độ thay đổi của sai sô, thể hiện qua phương trình :
MDn = KC * TD / Ts * [(SPn – PVn) – (SPn-1 – PVn-1)]
Với đặc tính có quán tính của mọi hệ vật chất, chúng ta có thể giả thiết rằng đại lượng thực tế PV không bao giờ có sự thay đổi một cách gián đoạn. Tuy nhiên đại lương yêu cầu thì có thể tăng giảm gãy khúc (do được tính trên lý thuyết). Về bản chất toán học, thành phần vi phân là phép lấy đạo hàm nên những sự thay đổi
gián đoạn có thể gây nên các giá trị vô cùng lớn ở đầu ra. Để tránh hiện tượng này, trong phương trình trên ta giả thiết SPn = SPn - 1 và có thể viết:
MDn = KC * TD / Ts * (PVn-1 – PVn)
Trong đó :
MDn: thành phần vi phân của đầu ra PID ở thời điểm lấy mẫu n
Kc: hằng số khuếch đại
Ts: thời gian lấy mẫu
Td: hệ số vi phân
SPn: đại lượng yêu cầu tại thời điểm lấy mẫu n
SPn-1: đại lượng yêu cầu tại thời điểm lấy mẫu n-1
PVn: đại lượng thực tế tại thời điểm lấy mẫu n
PVn-1: đại lượng thực tế tại thời điểm lấy mẫu n-1
Như vậy trên thực tế không cần nhớ sai số ở thời điểm lấy mẫu kế trước mà chỉ cần nhớ đại lượngthực tế. Trong lần tính toán đầu tiên PVn-1 được lấy bằng PVn.
6.3 Ứng dụng Matlab thiết kế và mô phỏng bộ điều khiển PID cho hệ thống :
Với phương trình hàm truyền hệ điều khiển liên tục đã được thiết lập ở phần trên:
Với dữ liệu đầu vào là:
x : đầu vào khối lượng thỏa điều kiện sau
g = 9.8 (m/s2) (gia tốc trọng trường)
J = 0.3 (kg.m^2/s^2) (moment quán tính của motor)
b = 0.03(Nms) (hệ số suy giảm của hệ thống cơ học)
Trường hợp 1: thiết kế bộ PID cho cơ cấu truyền động không tải (x = 1)
+ Đáp ứng vòng kín chưa hiệu chỉnh
Mở cửa sổ MATLAB command window lên và tạo một new m-file
Và gõ vào đó các dòng lệnh sau
Sau đó nhấn nút Run trên cửa sổ m-file và quan sát hình vẽ ta sẽ thấy đáp ứng của hệ thống
g = 9.8;
J = 0.3;
b = 0.03;
x = 1;
num = g*x;
den = [J b 0];
motor = tf(num,den)
Ts = 0.01;
motor_d= c2d(motor,Ts,'zoh')
sys_cl = feedback(motor_d,1)
[Y,T] = step(sys_cl,12);
stairs(T,Y);
xlabel('Time (s)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:Original')
Hình 6.1 : Đáp ứng ngỏ ra của hệ thống khi chưa có bộ điều khiển PID.
Ta thấy hệ thống hoạt động không ổn định và độ vọt lố, thời gian xác lập , sai số xác lập đều rất lớn và đáp ứng quá độ rất xấu.
+ Proportional control
Bây giờ ta sẽ thiết kế bộ điều khiển của khâu tỷ lệ Kp ( proportional controller) để xem ảnh hưởng của khâu này có thể cải thiện đáp ứng của hệ thống như thế nào.
Tiếp tục nhập vào m-file các dòng lệnh sau nhấp nút Run trên cửa sổ
Và quan sát biểu đồ đạt được
Kp = 0.005;
PID = tf(Kp,1);
contr = c2d(PID,Ts,'tustin');
sys_cl = feedback(contr*motor_d,1);
[x2,T] = step(sys_cl,12);
stairs(T,x2)
xlabel('Time (seconds)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:with P controller')
Hình 6.2 : Đáp ứng ngỏ ra của hệ thống khi có khâu hiệu chỉnh tỷ lệ K p.
Quan sát biểu đồ ta thấy khâu tỷ lệ có thể giảm đáng kể sai số xác lập và làm thay đổi phần nhỏ đến thời gian xác lập.Nhìn chung đáp ứng hàm truyền lúc này được cải thiện phần nào.
+ Proportional-Derivative control
Hình 6.2 chỉ ra rằng độ vọt lố và thời gian xác lập hệ thống còn rất cao , đáp ứng vẫn chưa tốt.
Bây giờ ta sẽ tiến hành thiết kế bộ điều khiển PD gồm hai khâu tỉ lệ và vi phân (Proportional-Derivative controller)
Nhập vào các dòng lệnh sau và chạy m-file
Kp = 0.001;
Kd = 0.07;
PID = tf([Kd Kp],1);
contr = c2d(PID,Ts,'tustin');
sys_cl = feedback(contr*motor_d,1);
[x2,T] = step(sys_cl,12);
stairs(T,x2)
xlabel('Time (seconds)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:with PD controller')
Hình 6.3 : Đáp ứng ngỏ ra của hệ thống khi có khâu hiệu chỉnh PD.
Nhìn hình vẽ đáp ứng ngỏ ra của hệ thống đã được cải thiện rất nhiều.Qua đó ta thấy thêm vào bộ điều khiển của khâu tích phân Kd có thể giảm độ vọt lố , thời gian xác lập đáng kể và đáp ứng của hệ thống đã ổn định hơn , tuy nhiên vẫn còn sai số xác lập tương đối lớn.
+ Proportional-Integral-Derivative control
Để khử sai số xác lập này ta sẽ thêm vào bộ điều khiển PD khâu vi phân .Bây giờ ta sẽ thiết kế bộ điều khiển PID gồm ba khâu tích phân , vi phân và khâu tỷ lệ để xem bộ điều khiển PID có thể làm cho hệ thống tối ưu hơn không Nhập vào m-file các dòng lệnh sau và tiến hành mô phỏng,ta sẽ có kết quả sau:
Kp = 0.03;
Ki = 0.001;
Kd = 0.2;
PID = tf([Kd Kp Ki],[1 0]);
contr = c2d(PID,Ts,'tustin');
sys_cl = feedback(contr*motor_d,1);
[x2,T] = step(sys_cl,12);
stairs(T,x2)
xlabel('Time (seconds)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:with PID controller')
Hình 6.4 : Đáp ứng ngỏ ra của hệ thống với bộ điều khiển PID không tải.
Bây giờ ta đạt được hệ thống dao động chuẩn với tr rất bé, không độ vọt lố , không sai số xác lập , thời gian đáp ứng rất nhanh.
Trường hợp 2: thiết kế bộ PID cho cơ cấu truyền động một tải (x =2). Nhập các dòng lệnh sau vào và tiến hành mô phỏng trên m-file với thông số ngỏ vào là khối lượng x thay đổi , bây giờ x =2 . Các thông số khác vẫn giữ nguyên không đổi.
g = 9.8;
J = 0.3;
b = 0.03;
x = 2;
num = g*x;
den = [J b 0];
motor = tf(num,den)
Ts = 0.01;
motor_d= c2d(motor,Ts,'zoh')
sys_cl = feedback(motor_d,1)
[Y,T] = step(sys_cl,12);
stairs(T,Y);
xlabel('Time (s)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:Original')
Kp = 0.042;
Ki = 0.001;
Kd = 0.2;
PID = tf([Kd Kp Ki],[1 0]);
contr = c2d(PID,Ts,'tustin');
sys_cl = feedback(contr*motor_d,1);
[x2,T] = step(sys_cl,12);
stairs(T,x2)
xlabel('Time (seconds)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:with PID controller')
Hình 6.5 : Đáp ứng ngỏ ra của hệ thống với bộ điều khiển PID một tải.
Trường hợp 3: Thiết kế bộ PID cho cơ cấu truyền động hai tải (x =3)
Nhập các dòng lệnh sau vào và tiến hành mô phỏng trên m-file với thông số ngỏ vào là khối lượng x thay đổi , bây giờ x =3 . Các thông số khác vẫn giữ nguyên không đổi.
g = 9.8;
J = 0.3;
b = 0.03;
x = 3;
num = g*x;
den = [J b 0];
motor = tf(num,den)
Ts = 0.01;
motor_d= c2d(motor,Ts,'zoh')
sys_cl = feedback(motor_d,1)
[Y,T] = step(sys_cl,12);
stairs(T,Y);
xlabel('Time (s)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:Original')
Kp = 0.045;
Ki = 0.001;
Kd = 0.1;
PID = tf([Kd Kp Ki],[1 0]);
contr = c2d(PID,Ts,'tustin');
sys_cl = feedback(contr*motor_d,1);
[x2,T] = step(sys_cl,12);
stairs(T,x2)
xlabel('Time (seconds)')
ylabel('Velocity (rad/s)')
title('Stairstep Response:with PID controller')
Hình 6.6 : Đáp ứng ngỏ ra của hệ thống với bộ điều khiển PID hai tải.
Trường hợp 4: Thiết kế bộ PID cho cơ cấu truyền động 3 tải (x =4)
Nhập các dòng lệnh sau vào và tiến hành mô phỏng trên m-file với thông số ngỏ vào là khối lượng x thay đổi , bây giờ x =4 . Các thông số khác vẫn giữ nguyên ...
 
Các chủ đề có liên quan khác

Các chủ đề có liên quan khác

Top