Tín hiệu truyền trong hệ thống có cả phần liên tục và phần số.. Trong đó :Mt : Tín hiệu ra của khối điều khiển ở thời điểm t.. Kc : Hệ số khuếch đại của bộ điều khiển et : Sai lệch giữa
Trang 1PLC04- 28
Điều khiển liên tục
Bộ Điều khiển PID
A Mục đích yêu cầu
1 Nắm đợc nguyên lý bộ điều khiển PID bằng PLC.
2 Lập trình ứng dụng điều khiển quá trình.
B Chuẩn bi :
1 Modul đào tạo PLC tối thiểu, Hoặc mô đun đầy đủ - S7-200-CPU215.
2 Mô đun EM235.
3 Thết bị lập trình cho PLC, Cáp ghép nối.
4 Máy tính và phần mềm lập trình.
C Lý thuyết :
Giới thiệu chung : Bộ điều khiển PID bằng PLC - S7-200 có sơ đồ cấu trúc
nh sau:
Trong đó khối điều khiển (phần trong ô ) đợc thực hiện bằng phần tử PLC - S7-200-CPU215 Mô đun A/D, D/A đợc thực hiện bằng khối mở rộng EM235
Tín hiệu truyền trong hệ thống có cả phần liên tục và phần số.
Hệ điều khiển PID liên tục thực hiện luật điều khiển liên tục nh sau:
Luật điều khiển PID :
Kc, Ti, Td, Ts D/A Đối tợng
A/D
Pv
Trang 2Trong đó :
M(t) : Tín hiệu ra của khối điều khiển ở thời điểm (t).
Kc : Hệ số khuếch đại của bộ điều khiển
e(t) : Sai lệch giữa tín hiệu đặt và tín hiệu phản hồi từ quá trình.
Ti : Hằng số thời gian tích phân
Minitial: Giá trị ban đầu của tích phân.
Td : Hằng số thời gian vi phân.
Chuyển sang hệ điều khiển số bằng PLC công thức (1) có thể viết thành :
Trong công thức 2 :
MPn: Thành phần tỷ lệ
MPn: Thành phần tỷ lệ trong tín hiệu ra tại thời điểm n
Kc hệ số khuếch đại
SPn Tín hiệu đặt tai thời điểm thứ n
PVn Tín hiệu ra của bộ điều khiển tại thời điểm thứ n
M(t) = Kc * e(t) + Kc/Ti ∫ ( et) dt + M initial + Kc* Td * de/dt (1)
Thành phần tỷ lệ Thành phần Tích phân Thành phần vi phân
MPn = Kc * ( SPn - PVn )
Trang 3Trong đó :
MIn: Thành phần tích phân trong tín hiệu ra tại thời điểm thứ n
Kc: Hệ số khuếch đại
Ts: Chu kỳ cắt mẫu
Ti: Hằng số thời gian tích phân
SPn: Giấ trị đặt tại thời điểm thứ n
PVn: Giá trị ra của quá trình tại thời điểm thứ n
MX: Giá trị đầu của tích phân - (giá trị ra của PID tại thời điểm thứ n-1) MDn : Thành phần vi phân
Trong đó :
MDn: Thành phần vi phân trong tín hiệu ra tại thời điểm thứ n
Td: Hằng số thời gian vi phân
SPn : Giá trị đặt
PVn: Giá trị đầu ra của quá trình tại thời điểm thứ n
Các thành phần này cùng các tham số Kc, Ti, Td, Ts đều có ảnh hởng đến các
đặc tính đầu ra của quá trình nh : Độ ổn định của hệ thống, Sai số tĩnh-sai số trong chế độ xác lập, Độ quá điều chỉnh, Thời gian quá độ, số lần dao
động.v.v Ngời học nên tham khảo thêm các tài liệu liên quan để hoàn thiện kiến thức.
Giới thiệu về thí nghiệm và chơng trình :
MDn = Kc * Td/Ts * ( ( SPn- PVn ) - (SPn - PVn-1 ))
MDn = Kc * Td/Ts * ( PVn -1 - PVn )
Trang 4Tham khảo:
Chương trình S7 – 200 dưới đây chỉ là một ví dụ ngắn về cách sử dụng PID thông qua ví dụ về điều khiển mức nước trong bể để vừa đảm bảo áp suất vừa đảm bảo nước trong bình không bị cạn hết Cấu trúc hệ thống như hình dưới đây:
Yêu cầu thiết bị điều khiển: 01 PLC S7 200/ CPU 215; 216 trở lên và 01 khối EM 235 gồm có 3 đầu vào analog và một đầu ra analog 12 bít
Mô tả hệ thống:
Trong hệ thống này, một bể nước được dùng để khống chế áp lực nước không đổi Nước liên tục được lấy ra từ vòi với một tốc độ bất kỳ Bơm được dùng
để tăng thêm nước vào bể với một tốc độ đủ để duy trì áp suất cũng như mức nước trong bình không hạ xuống quá mức cho phép.
Giá trị đặt của hệ thống là mức nước (trong ví dụ này là 75% bể) Đại lượng đầu vào của hệ thống là tín hiệu do một cảm biến đo mức đưa về thông qua đầu vào analog A+, A- Tín hiệu đưa về có thể thay đổi từ 4 – 20mA tương ứng với 0 – 100% mức đầy của bể Tín hiệu ra của hệ thống là tín hiệu điện áp có thể thay đổi từ 0 – 10
V dùng để điều khiển tốc độ bơm tương ứng là 0 – 100% tốc độ định mức
Giá trị đặt được quyết định bởi người sử dụng và được đưa trực tiếp vào quá trình Trong chương trình này, bộ điều khiển sử dụng hai thông số là P và I, không dùng đến D Thời gian lấy mẫu là Ts = 0.1 giây, KC = 0.25 và Ti = 30 phút.
Trước tiên, bể nước sẽ được tiếp đầy nước cho đến khi được 75% Sau đó, van xả sẽ được mở để lấy nước từ bể và cùng lúc bơm sẽ được chuyển từ chế độ điều khiển bằng tay sang chế độ tự động
Trong quá trình điều khiển bằng tay, tốc độ bơm được qui định bởi số thực lưu tại VD108 nằm trong khoảng 0.0 tới 1.0.
Trang 5SBR0 là hàm thực hiện khởi tạo hệ thống.
SBR 1 là hàm thực hiện kiểm tra lỗi của khối analog.
Đầu vào I0.0 sẽ được dùng là tín hiệu khởi động hệ thống điều khiển tự động
Đầu ra Q0.7 báo lỗi xảy ra ở module analog
Ngắt INT 0 thực hiện thuật toán PID mỗi 100 ms một lần
Bảng lặp dùng cho PID gồm có 36 byte và những thống số được đặt trong
vùng nhớ V và tất cả đều dùng là double word (VD)
Khoảng
cách so
với địa
chỉ bắt
đầu
Thông số tính
toán
có thể định nghĩa
0 PV Double word
- real
vào Tín hiệu về mức nước hiện tại trong bể, khoảng
0.0 – 1.0 tương ứng 0 – 100%
NO
4 SP Double word
- real
IN Giá trị đặt về mức nước trong bể, cũng phải nằm
trong khoảng 0.0 – 1.0
YES
8 M Double word
- real
In/Out Giá trị tín hiệu ra, nằm trong khoảng 0.0 – 1.0 NO
12 KC Double word
- real In Hệ số khuếch đại P. YES
16 TS Double word
- real In Thời gian trích mẫu YES
20 Ti Double word
- real
In Thời gian tích phân YES
24 Td Double word
- real
28 Bias (MX) Double word
- real
In/Out Tổng tích phân (bias MX or integral sum) YES
32 PVN-1 Double word
- real In/Out Giá trị mức nước đo được lần lấy mẫu trước NO
Trong chương trình dùng địa chỉ bắt đầu của bảng là VD100
Có thể tham khảo thêm về PID trong các tài liệu được cung cấp trong Hướng dẫn sử dụng hệ thống S7 200 và các sách tham khảo khác
Trang 6Lưu đồ thuật toán
Trang 7CHƯƠNG TRÌNH CHINH
// PID
│ SM0.1 0
1 ├─┤ ├────────────────────────( CALL ) │
│
│ SM0.0 1
2 ├─┤ ├────────────────────────( CALL ) │
│
3 ├──────────────────────────────( MEND ) │
LD SM0.1 // ON tại vòng quét đầu CALL 0 // Gọi hàm khởi tạo hệ thống LD SM0.0 // Luôn luôn ON CALL 1 // Gọi hàm kiểm tra lỗi của // khối analog MEND // Kết thúc CHUONG TRINH CON // SBR0: Khởi tạo hệ thống và khởi động ngắt thời gian ┌──────────┐ │ SBR: 0 │ └───┬──────┘ │ SM0.0 MOV_B───┐ 5 ├─┤ ├───────────┬────────────┤EN │
│ │ K100┤IN OUT├SMB34 │ │ └───────┘
│ │ ATCH────┐ │ ├────────────┤EN │
│ │ K0┤INT │
│ │ K10┤EVT │
│ │ └───────┘
│ │
│ └────────────( ENI ) │
6 ├──────────────────────────────( RET ) SBR 0 LD SM0.0 MOVB 100, SMB34 // Thời gian ngắt là 100 ms ATCH 0, 10 // Gọi chương trình ngắt thời gian (10) để thực hiện thuật toán PID ENI // Chấp nhận hoạt động RET // Trở về chươn trình chính // SBR1: Kiểm tra lỗi khối analog và báo lỗi bằng Q0.7
┌──────────┐ │ SBR: 1 │ └───┬──────┘ │ SMB8 KH19 Q0.7 8 ├─────┤ == B ├─────┤NOT├─┬──────( )
│ │
│ │
│ │
│ │
│ SMB9 KH0 │
├─────┤ == B ├─────┤NOT├─┘ │
│
9 ├──────────────────────────────( RET ) │
SBR 1 LDB= SMB8, 16#19
// Nếu không có khối EM235 thì báo lỗi
NOT LDB= SMB9, 16#0
// Nếu đã có EM235 nhưng có lỗi thì cũng báo lỗi
NOT OLD
= Q0.7
// Error reading analog module
RET
// INT 0: Thực hiện thuật toán PID - Chuonh trinh ngat
Trang 8│ INT: 0 │
└───┬──────┘
│ Q0.7 WXOR_DW─┐
11 ├─┤ / ├───────────┬────────────┤EN │
│ │ AC0┤IN1 OUT├AC0
│ │ AC0┤IN2 │
│ │ └───────┘
│ │ MOV_W───┐
│ ├────────────┤EN │
│ │ AIW0┤IN OUT├AC0
│ │ └───────┘
│ │ DI_REAL─┐
│ ├────────────┤EN │
│ │ AC0┤IN OUT├AC0
│ │ └───────┘
│ │ SUB_R───┐
│ ├────────────┤EN │
│ │ KR+6400.00┤IN1 OUT├AC0
│ │ AC0┤IN2 │
│ │ └───────┘
│ │ DIV_R───┐
│ ├────────────┤EN │
│ │ AC0┤IN1 OUT├AC0
│ │ KR+25600.0┤IN2 │
│ │ └───────┘
│ │ MOV_R───┐
│ └────────────┤EN │
│ AC0┤IN OUT├VD100
│ └───────┘
│ I0.0 PID─────┐
12 ├─┤ ├────────────────────────┤EN │
│ VB100┤TBL │
│ 0┤LOOP │
│ └───────┘
│ SM0.0 MUL_R───┐
13 ├─┤ ├───────────┬────────────┤EN │
│ │ VD108┤IN1 OUT├AC0
│ │ KR+32000.0┤IN2 │
│ │ └───────┘
│ │ TRUNC───┐
│ ├────────────┤EN │
│ │ AC0┤IN OUT├AC0
│ │ └───────┘
│ │ MOV_W───┐
│ └────────────┤EN │
│ AC0┤IN OUT├AQW0
│ └───────┘
│
14 ├──────────────────────────────( RETI )
INT 0 LDN Q0.7
// Nếu khối analog không có lỗi
XORD AC0, AC0
// Xóa AC0
MOVW AIW0, AC0
// Lấy giá trị đo được về mức nước PV
DTR AC0, AC0
// Chuyển đổi sang số thực 32 bít
-R 6400.0, AC0
// Chuyển đổi sang tín hiệu 4 – 20 mA
/R 25600.0, AC0
// Chuyển PV về giá trị thường dùng
MOVR AC0, VD100
// Lưu vào vùng nhớ
LD I0.0 // Chế độ Auto
PID VB100, 0 // Thực hiện PID với địa chỉ bắt đầu là VB100
// Tín hiệu đầu ra analog
LD SM0.0 MOVR VD108, AC0 // Đưa ra AC0
*R 32000.00, AC0 // chuyển thang giá trị
TRUNC AC0, AC0
//Chuyển sang số nguyên 32 bít
MOVW AC0, AQW0
// Gửi ra đầu ra
RETI // Trở lại chương trình chính
Trang 9Dữ liệu DB1 (V Memory):
// Khoi tao cac tham so dieu khien cho bo dieu khien PID co the thuc hien bang cac lenh MOV trong chuong trinh con SBR_0 hoac tu man hinh TD-200.
D Các bớc thực hành
1 Tìm hiểu kỹ yêu cầu công nghệ nêu trên, phân tích dac điểm của hệ thống và cách làm việc của hệ.
2 Liệt kê các đầu và ra :
3 Phân cổng vào ra cho PLC :
4 Dựng lu đồ chơng trình - mô ta cách làm việc của chơng trình :
5 Dich lu đồ sang giản đồ thang:
6 Lập trình giản đồ thang vào PLC
7 Nối PLC va cac thiet bi theo so do hinh 7-3
8 Chạy kiểm tra toàn bộ hệ thống - viết báo cáo nhận xét kết quả.
E Câu hỏi cuối bài học
1 Giải thích nội dung quan sát đợc trong thực hành 8.
2 Thử nghiệm chơng trình trên với các bộ thông số điều khiển Kc, Ti, Td khác
nhau, rút ra nhận xét
3 Tìm tham số điều khiển tối u tác động nhanh của hệ.