ĐIỀU KHIỂN NHIỆT LÒDỤC NHIỆT BẰNG PHƯƠNG PHÁP PID BỘĐỘ GIÁO VÀ ĐÀO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA: ĐIỆN- ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
Đề tài : Điều
khiển nhiệt độ lò nhiệt bằng phương pháp PID
GVHD: Ts. Ngô Văn Thuyên
Tp.Hồ Chí Minh Tháng 01 năm 2010
PHATTRIENCONGNGHE.COM
Trang 1
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………
PHATTRIENCONGNGHE.COM
Trang 2
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
Mục Lục
Trang
A. Giới thiệu chung
B.
1.Điều khiển nhiệt độ
4
2. Phương pháp điều khiển PID
4
Nội dung I.Vi điều khiển PIC 16F877A
4
1.Đặc tính nổi bật của vi điều khiển
C.
2.Khả năng của bộ vi điều khiển này
5
3. Các đặt tính nổi bật của thiết bị ngoại vi trên chip
5
4.Sơ đồ và chức năng các chân Pic 16F877A
6
5.Sơ đồ khối bộ vi điều khiển Pic 16F877A
8
6. Các thanh ghi có chức năng đặc biệt
8
7.Xử lý ADC
13
II.Cảm biến nhiệt độ LM35
15
III.LCD 16x2
16
IV.Phương pháp điều khiển PID
18
V. Giao tiếp giữa máy tính và vi điều khiển.
31
VI.Sơ đồ kết nối phần cứng
34
VII.Lưu đồ giải thuật
35
Kết luận
Phụ lục 1.Chương trình C
PHATTRIENCONGNGHE.COM
Trang 3
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
A.GIỚI THIỆU CHUNG 1.Điều khiển nhiệt độ Vấn đề điều khiển và giám sát nhiệt độ được sử dụng trong nhiều lĩnh vực sản xuất khác nhau như: điều khiển lò ấp trứng gà, vịt của bà con nông dân hay điều khiển và giám sát nhiệt độ của lò hơi….Điều quan trọng là nhiệt độ phải ổn định và sự chính xác tương đối.Sử dụng phương pháp điều khiển PID có thể đảm bảo các tiêu chí về kỹ thuật và kinh tế của nhà sản xuất yêu cầu. 2.Phương pháp PID Ngày nay, với sự phát triển vượt bậc của khoa học công nghệ, những phương pháp điều khiển thông thường không đủ khả năng đáp ứng những yêu cầu ngày càng khắt khe hơn của những ứng dụng. Người ta bắt đầu áp dụng nhiều giải thuật điều khiển khác nhau như giải thuật PID, Fuzzy logic (điều khiển mờ), mạng nơ ron… và đã thu được những kết quả khả quan.Thuật toán PID được áp dụng rộng rãi trong hầu hết các hệ thống điều khiển tự động từ cơ, nhiệt, lưu chất đến điện. PID kết hợp 3 thuật toán tỉ lệ, tích phân, vi phân; là bộ điều khiển không có sai lệch, khâu I bù và giảm các dao động để loại bỏ sai số dịch chuyển, và giảm thời gian trễ nhờ khâu D B.NỘI DUNG : I.Vi điều khiển PIC 16F877A 1.Đặc tính nổi bật của vi điều khiển Sử dụng công nghệ tích hợp cao RISC CPU. Người sử dụng có thể lập trình với 35 câu lệnh đơn giãn. Tất cả các câu lệnh đều được thực hiện trong một chu kỳ ngoại trừ một số lệnh rẽ nhánh được thực hiện trong 2 chu kỳ lệnh. Tốc độ hoạt động là: -Xung đồng hồ vào DC 20MHz. -Chu kỳ thực hiện trong 200ns. Bộ nhớ chương trình flash 8Kx 14words. Bộ nhớ Ram 368x8bytes. Bộ nhớ EFPROM 256x8 bytes.
PHATTRIENCONGNGHE.COM
Trang 4
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID 2.Khả năng của bộ vi điều khiển này Khả năng ngắt: lên tới 15 nguồn ngắt trong và ngắt ngoài. Ngăn nhớ Stack đọc phân chia làm 8 mức. Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc giám tiếp Nguồn khởi động lại (POR). Bộ tạo xung thời gian(PWRT) và bộ tạo dao động (OST). Bộ đếm xung thời gian(WDT) với nguồn dao động trên chip nguồn dao động (RC) hoạt động đáng tin cậy. Có mạch chương trình bảo vệ. Phương thức cất giữ SLEEP. Có bản lưa chọn dao động công nghệ CMOS FLASH/EFPROM nguồn mứa thấp , tốc độ cao Thiết kế hoàn toàn tĩnh. Mạch chương trình nối tiếp có hai chân. Xử lý đọc/ghi tới bộ nhớ chương trình. Dải điện thế hoạt động rộng 2V đến 5.5V. Nguồn sử dụng hiện tại 2.5mA. Công suất tiêu thụ:
<0.6mA với 5V, 4MHz.
20uA với nguồn 3V , 32KHz <1uA với nguồn dự phòng. 3. Các đặt tính nổi bật của thiết bị ngoại vi trên chip Timer0: 8 bit với bộ định thời , bộ đếm với hệ số tỉ lệ trước. Timer1: 16 bit với bộ định thời , bộ đếm với hệ số tỉ lệ trước, có khả năng tăng trong khi ở chế độ SLEEP qua xung đồng hồ được cung cấp bên ngoài. Timer2: 8 bit với bộ định thời , bộ đếm 8 bit với hệ số tỉ lệ trước , hệ số tỉ lệ sau. Có 2 chế độ bắt giữ , so sánh, và điều chế độ rộng xung(PWM).
PHATTRIENCONGNGHE.COM
Trang 5
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID Chế độ bắt giữ với 16 bit, với tốc độ 12,5ns, chế độ so sánh với 16 bit với tốc độ xử lý cực đại là 200ns, chế độ điều chế độ rộng xung với 10 bit. Bộ chuyển đổi tin hiệu số sang tương tự với 10 bit. Cổng truyền thông nối tiếp SSP và SPI phương thức chủ và I2C ( chủ/phụ). Bộ truyền nhận thông tin đồng bộ, dị bộ (USART/SCR) có khả năng phát hiện 9 bit địa chỉ . Cổng phụ song song PSP với 8 bit mở rộng với RD , WR , CS điều khiển. 4.Sơ đồ và chức năng các chân Pic 16F877A
PHATTRIENCONGNGHE.COM
Trang 6
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
PHATTRIENCONGNGHE.COM
Trang 7
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID 5.Sơ đồ khối bộ vi điều khiển Pic 16F877A
6. Các thanh ghi có chức năng đặc biệt a) Thanh ghi trạng thái Status:
- Bit 7_IRP:Làm nhiệm vụ định địa chỉ gián tiếp cho Ram nội RP=1 bank 2 và bank 3 IRP=0 bank 0 và bank 1 (địa chỉ từ 00 -> FFh) - Bit 6,5_RP1 và PB0: 2 bit này dùng để chọn bank thanh ghi 00 = Bank 0 ; 01 = Bank 1; 10 = Bank 2; 11= Bank 3 - Bit 4_TO (time_out):bit này được set lên 1 khi WDT bị tràn 1 = Chưa tràn ; 0 = Bị tràn - Bit 3_PD (power_down bit):bit này được set mỗi khi vi điều khiển được cấp nguồn,bắt đầu chạy,khi Reset… - Bit 2_Z (zero bit):Dùng để chỉ kết quả ra 0,được set mỗi khi kết quả trả về của 1 phép toán số học hay luận lý
PHATTRIENCONGNGHE.COM
Trang 8
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
có giá trị bằng 0 - Bit 1_DC (digit carry):được set khi ta trừ số nhỏ hơn cho số lớn hơn,reset nếu ngược lại. - Bit 0_Carry:bi ảnh hưởng bởi các lệnh ADDWF, ADDLW, SUBLW, SUBW b) Thanh ghi điều khiển ngắt (INTCON): Thanh ghi INTCON được truy xuất bằng cách chọn Bank tương ứng.Nó có chức năng cho phép ngắt hoặc cấm ngắt và xác định các nguyên nhân ngắt
- Bit 7 _ GIE (global interrup enable bit): Bit cho phép hay không cho phép ngắt GIE = 1 cho phép các ngắt thực hiện GIE = 0 không cho phép ngắt - Bit 6_EEIE (Eeprom write complete interrup enable bit):bit cho phép gây ra tại nơi kết thúc của việc viết chương trình con vào Eeprom - Bit 5_TOIE(TMR0 overfow interrup enable bit):cho phép kích hoạt ngắt gây ra bởi sự tràn TMR0 - Bit 4_INT (INT internal interrup enable bit):cho phép ngắt xảy ra tại ngắt ngoài của chân RB0/INT - Bit 3_RBIE (RB port change interrup enable bit):cho phép ngắt xảy ra khi có sự thay
đổi trạng thái trên các chân RB4 đến RB7. - Bit
2_T0IF(TMR0 overflow interrup flag bit):cờ báo tràn của TMR0,bit này được xóa
bằng phần mềm để ngắt tiếp theo xảy ra.
- Bit 1_INTF(INT internal interrup flag bit):Cờ báo xảy ra ngắt ngoài. - Bit 0_RBIF(RB port change interrup flag bit):bit xác định sự thay đổi trên chân RB4
đến RB7,bit này được xóa trong chương trình ngắt
PHATTRIENCONGNGHE.COM
Trang 9
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID Sơ đ ồ k h ố i c ủ a T I M E R 0
- Là một bộ timer 8 bit,giá trị nó tăng từ 0 ->255,sau khi đếm đến 255 tự reset và cho đếm lại. Thời điểm đếm từ 255 về 0, bit TOIF trong thanh ghi INTCON được set lên 1. Nếu ngắt được xảy ra thì con trỏ chương trình sẽ nhảy đến chương trình con phục vụ ngắt. Bên cạnh việc nhận xung nội,giá trị của Timer có thể tăng lên nhờ việc nhận xung từ bên ngoài qua chân RA4/TOCK1,khi đó Timer hoạt động như một bộ đếm - Bit TMR0IE là bit điều khiển ngắt của TIMER 0 - Muốn cho TIMER 0 hoạt động ở chế độ timer ta Clear bit TOCS - Muốn cho TIMER 0 hoạt động ở chế độ counter ta set bit TOCS Sơ đồ khối và nguyên lý hoạt động của TIMER1
PHATTRIENCONGNGHE.COM
Trang 10
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID - TIMER 1 là bộ định thời 16 bits,cờ ngắt là bit TM1RIF(PIR1<0>) - TIMER 1 cũng có 2 chế độ hoạt động: timer hoặc counter - Việc lựa chọn chế độ timer hay counter phụ thuộc vào bit TMR1CS (T1CON<1>) - TIMER1 có chức năng Reset Input điều khiển bởi khối CCP - TIMER1 còn có chức năng đếm đồng bộ hoặc bất đồng bộ điều khiển bởi bit T1SYNC Sơ đồ khối và nguyên lý
hoạt động của TIMER2 - Là bộ định thời 8 bit và được hỗ trợ bởi 2 bộ chia tần Bit cho phép ngắt TMR2ON(t2con<2>), cờ ngắt là bit TMR2IF (PIR1<1>) . -Tỉ số chia tần số 1:1,1:4 và 1:16 được điều khiển bởi 2 bit T2CKPS1: T2CKPS0 - Ngõ ra với 2 mức chia tần 1:1 và 1:16 điều khiển bởi 4 bit T2OUTPS3: T2OUTPS0 Sơ đồ khối và nguyên lý hoạt động của CCP
PHATTRIENCONGNGHE.COM
Trang 11
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
-
CCP (capture/compare/PWM) hoạt động nhờ xung đếm cung cấp bởi các bộ đếm TIMER1 và TIMER2 - Ở chế độ PWM,tín hiệu sau khi điều chế đưa ra các Pin CCP - Thiết lập chu kì xung đưa giá trị vào PR2 - Thiết lập độ rộng xung đưa giá trị vào CCPRL - Điều khiển Pin CCP output bằng cách Clear bit tương ứng trong thanh ghi TRISC<2> - Thiết lập giá trị bộ chia tần số - Thiết lập giá trị bộ chia tần số c) Thanh ghi OPTION_REG
-Bit 7_RBPU (Port B Pull up enable bit):bit kích hoạt hay tắt điện trở nội kéo lên của Port B
PHATTRIENCONGNGHE.COM
Trang 12
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
1 = kích hoạt 0 = vô hiệu -Bit 6_INTEDG (interrup edge sellect bit):Nếu có sự kiện ngắt xảy ra,bit này sẽ
xem xét tín hiệu thay đổi cạnh lên hay cạnh xuống
1 = cạnh lên 0 = cạnh xuống -Bit 5_ T0CS(TMR0 clock source sellect bit):xác định xung kích bên trong hay bên ngoài bộ dao động. 1 = xung bên ngoài 0 = xung bên trong -Bit 4_T0SE (TMR0 source edge sellect bit):nếu sử dụng xung bên ngoài thi TMR0 tăng lên bằng xung cạnh lên hay cạnh xuống 1 = cạnh xuống 0 = cạnh lên -Bit 3_PSA: xác định tỉ lệ giữa WDT và TMR0 1 = tỉ lệ gán cho WDT 0 = tỉ lệ gán cho TMR0 -Bit 2,1,0_SP2,SP1,SP1:xác định thời gian mỗi lần tăng của WDT hay TMR0 7.Xử lý ADC
PHATTRIENCONGNGHE.COM
Trang 13
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID -PIC16F877 có 8 chân xử lý ADC với nhiều cách thức khác nhau. Để dùng ADC bạn phải khai báo #DEVICE cho biết dùng ADC mấy bit ( tùy chip hỗ trợ thường là 8 hay 10 bit). Các hàm phục vụ ADC: a.Setup_ADC (mode): -Dùng xác định cách thức hoạt động bộ biến đổi ADC. Tham số mode tùy thuộc file thiết bị (*.h), có tên tương ứng tên chip bạn đang dùng, nằm trong thư mục DEVICES của CCS. Muốn biết có bao nhiêu tham số để dùng cho chip đó bạn mở file tương ứng đọc, tìm tới chỗ các dịnh nghĩa cho chức năng ADC dùng cho chip đó tương ứng với hàm này. Sau đó là các giá trị mode của 16F877. b. Setup_ADC_port (value) -Xác định chân lấy tín hiệu analog và điện thế chuẩn sử dụng. Tùy thuộc bố trí chân trên chip số chân và chân nào dùng cho ADC và số chức năng ADC mỗi chip mà value có thể có những giá trị khác nhau. c. Set_ADC_channel: -Chọn chân để độc vào giá trị analog bằng lệnh read_adc(). Giá trị channel tùy số chân chức năng ADC mỗi chip, với 16F877 channel có gia trị từ 0-7: 0-chân A0 1-chân A1 2-chân A2 3-chân A3 4-chân A5 5-chân E0 6-chân E1 7-chân E2
PHATTRIENCONGNGHE.COM
Trang 14
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
-Hàm không trả về trị nên delay 10us sau hàm này rồi mới dùng ham read_adc để đảm bảo kết quả chính xác. Hàm chỉ hoạt động với A/D phần cứng trên chip.
d.read_adc(mode): -Dùng đọc giá trị ADC từ thanh ghi chứa kết quả biến đổi ADC. Nếu giá trị ADC là 8bit như khai báo trong #DEVICE giá trị trả về của hàm là 8 bit, ngược lại là 16 bit nếu khai báo #DEVICE sử dụng ADC 10 bit trở lên. Khi dùng hàm này nó sẽ lấy giá trị ADC từ chân bạn chọn trong hàm set_adc_channel() trước đó.
II. Cảm biến nhiệt LM35 Đây là cảm biến nhiệt được tích hợp chính xác cao của hãng National Semiconductor. Điện áp đầu ra của nó tỉ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Điện áp ngõ ra thay đổi 10mv (điện áp bước) cho mỗi sự thay đổi 10C. Chúng không yêu cầu cân chỉnh ngoài. •
- Chân 1: V+
•
- Chân 2: Vout
•
- Chân 3: V-
PHATTRIENCONGNGHE.COM
Trang 15
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
III. LCD
Chân
Ký hiệu
I/O
Mô tả
1
Vss(GND)
-
Đất
2
Vcc
-
Nguồn dương 5V
3
VEE(V0)
-
Nguồn cấp điều khiển
4
RS
I
RS=0 chọn thanh ghi lệnh, RS=1 chọn thanh dữ liệu
5
R/W
I
R/W=1 đọc dữ liệu, R/W=0 ghi dữ liệu
6
E
7
D0..D7
I/O
Cho phép
I/O Các bit dữ liệu
PHATTRIENCONGNGHE.COM
Trang 16
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
1.Chân Vcc, Vss, VEE : Cấp nguồn dương 5V,đất tương ứng và điều khiển độ tương phản của LCD. 2. Chân chọn thanh ghi RS: (register select) RS=0 thanh ghi mà lệnh được chọn để cho phép người dùng gửi một lệnh chẳng hạn như xóa màng hình,đưa con trỏ về đầu dòng v.v… RS=1 thì thanh ghi dữ liệu được chọn cho phép người dùng gởi dữ liệu cần hiển thị trên LCD. 3. Chân đọc ghi (R/W): Đầu vào đọc/ghi cho phép người dùng ghi thông tin lên LCD khi R/W=0 hoặc đọc thông tin từ nó khi R/W=1. 4. Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức cao xuống thấp được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu. Xung này phải rộng tối thiểu là 450ns. 5. Chân D0..D7: Đây là 8 chân dữ liệu 8bit. Được dùng để gởi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và các con số thì bật RS=1. Cũng có các lệnh mà có thể gửi đến LCD để xóa màng hình hoặc đưa con trỏ về đầu dòng hoặc nhap nháy con trỏ. Chúng ta có thể sử dụng RS=0 để kiểm tra bit cờ bận để xem LCD có sẵng sàng nhận thông tin. Cờ bận là D7 và có thể đọc khi R/W=1 và RS=0 như sau: Nếu R/W=1,RS=0 khi D7=1(cờ bận 1) thì LCD bận bởi các công việc bên trong và sẽ không nhận bất kỳ thông tin mới nào. Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi thông tin mới nào lên LCD.
PHATTRIENCONGNGHE.COM
Trang 17
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID IV.Phương pháp điều khiển PID Ngày nay, với sự phát triển vượt bậc của khoa học công nghệ, những phương pháp điều khiển thông thường không đủ khả năng đáp ứng những yêu cầu ngày càng khắt khe hơn của những ứng dụng. Người ta bắt đầu áp dụng nhiều giải thuật điều khiển khác nhau như giải thuật PID, Fuzzy logic (điều khiển mờ), mạng nơ ron… và đã thu được những kết quả khả quan. 1. Lý thuyết điều khiển tự động Lý thuyết điều khiển tự động có thể phân thành 3 loại theo lịch sử phát triển của nó, bao gồm: điều khiển kinh điển, điều khiển hiện đại và điều khiển thông minh. a. Điều khiển kinh điển (classical control) Lý thuyết điều khiển kinh điển mô tả hệ thống trong miền tần số (phép biến đổi Fouier) và mặt phẳng s (phép biến đổi Laplace). Lý thuyết này chủ yếu áp dụng cho hệ tuyến tính bất biến theo thời gian, mặc dù cũng có một số mở rộng để áp dụng cho hệ phi tuyến. Lý thuyết điều khiển kinh điển thích hợp để thiết kế hệ thống một ngõ vào – một ngõ ra, rất khó áp dụng cho những hệ thống nhiều ngõ ra và các hệ thống biến đổi theo thời gian. Các phương pháp phân tích và thiết kế trong lý thuyết điều khiển kinh điển gồm có phương pháp Nyquist, phương pháp Bode và phương pháp quỹ đạo nghiệm số. Theo phương pháp Nyquist và Bode, cần mô tả hệ thống dưới dạng đáp ứng tần số (đáp ứng biên độ và pha). Trong phương pháp quỹ đạo nghiệm số, hệ thống cần được mô tả theo hàm truyền. Hàm truyền cũng có thể tính được từ đáp ứng tần số. Việc mô tả chính xác đặc tính động học bên trong hệ thống là không cần thiết với các phương pháp thiết kế kinh điển, chỉ có quan hệ giữa ngõ vào và ngõ ra là quan trọng.
PHATTRIENCONGNGHE.COM
Trang 18
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID Các khâu hiệu chỉnh đơn giản như hiệu chỉnh vi tích phân tỉ lệ (PID), hiệu chỉnh sớm trễ pha… thường được sử dụng trong các hệ thống điều khiển kinh điển. Ảnh hưởng của những khâu hiệu chỉnh này đến biểu đồ Nyquist, biểu đồ Bode và quỹ đạo nghiệm số có thể thấy dễ dàng, nhờ đó có thể dễ dàng lựa chọn được khâu hiệu chỉnh thích hợp. b.Điều khiển hiện đại (modern control) Kỹ thuật thiết kế hệ thống hiện đại dựa trên miền thời gian. Mô tả toán học dùng để phân tích và thiết kế hệ thống là phương trình trạng thái. Mô hình không gian trạng thái có ưu điểm là mô tả được đặc tính động học bên trong hệ thống (các biến trạng thái) và có thể dễ dàng áp dụng cho hệ thống biến đổi theo thời gian. Bộ điều khiển được sử dụng chủ yếu trong thiết kế hệ thống hiện đại là bộ điều khiển hồi tiếp trạng thái. Tùy theo cách tính vector hồi tiếp trạng thái mà ta có phương pháp phân bố cực, bộ điều khiển tối ưu, điều khiển bền vững… Với sự phát triển của lý thuyết điều khiển số và hệ thống rời rạc, lý thuyết điều khiển hiện đại rất thích hợp để thiết kế các bộ điều khiển là các chương trình phần mềm chạy trên vi xử lý và máy tính số. Điều này cho phép thực thi các bộ điều khiển có đặc tính động học phức tạp hơn cũng như hiệu quả hơn so với các bộ điều khiển đơn giản như PID hay sớm trễ pha trong lý thuyết điều khiển kinh điển. c.Điều khiển thông minh (intelligent control) Điều khiển kinh điển và điều khiển hiện đại gọi chung là điều khiển thông thường (conventional control), có khuyết điểm là để thiết kế được hệ thống điều khiển cần phải biết mô hình toán học của đối tượng. Trong khi đó, thực tế có những đối tượng điều khiển rất phức tạp, rất khó hoặc không thể xác định được mô hình toán học. Các phương pháp điều khiển thông minh như điều khiển mờ,
PHATTRIENCONGNGHE.COM
Trang 19
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
mạng nơ ron nhân tạo, thuật toán di truyền mô phỏng / bắt chước các hệ thống thông minh sinh học, về nguyên tắc không cần dùng mô hình toán học để thiết kế hệ thống, do đó có khả năng ứng dụng thực tế rất lớn. Khuyết điểm của bộ điều khiển mờ là quá trình thiết kế mang tính thử sai, dựa vào kinh nghiệm của chuyên gia. Nhờ kết hợp logic mờ với mạng nơ ron nhân tạo hay thuật toán di truyền mà thông số bộ điều khiển mờ có thể thay đổi thông qua quá trình học hay quá trình tiến hóa, nhờ vậy khắc phục được những khuyết điểm thử sai. Hiện nay, các bộ điều khiển thông thường kết hợp với các kỹ thuật điều khiển thông minh tạo nên các bộ điều khiển lai điều khiển các hệ thống phức tạp với chất lượng rất tốt. 2. Lý thuyết điều khiển PID Các bộ điều khiển số ngày nay rất thông dụng trong hệ thống điều khiển công nghiệp. Những đặc trưng nổi bật của vi xử lý như tự hiệu chỉnh, điều khiển đa biến và hệ chuyên gia cùng khả năng giao tiếp bus và mạng cục bộ đưa đến việc nó được sử dụng ngày càng nhiều trong các bộ điều khiển số. Bộ điều khiển số dùng trong hệ thống điều khiển vòng kín gồm các chế độ điều khiển tỉ lệ P, điều khiển tích phân tỉ lệ PI, vi phân tỉ lệ PD, vi tích phân tỉ lệ PID. Đối với hệ thống dự trữ độ ổn định lớn, ta chỉ cần tăng hệ số khuếch đại của luật điều khiển tỉ lệ P. Luật điều khiển tích phân còn gọi là điều khiển chậm sau vì sai số điều khiển được tích lũy cho đến khi đủ lớn thì quyết định điều khiển mới được đưa ra. Hệ thống sẽ không có sai lệch tĩnh khi tín hiệu vào là hàm bậc thang đơn vị và hằng số thời gian tích phân TI được chọn khác 0. Tăng khả năng tác động nhanh của hệ, giảm bớt thời gian quá điều chỉnh bằng cách thay đổi hằng số thời gian của luật điều khiển vi phân TD còn được gọi là điều khiển vượt trước.
PHATTRIENCONGNGHE.COM
Trang 20
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID Bộ điều khiển PID là một phần tử không thể thiếu trong các quá trình tự động không chế nhiệt độ, mức, tốc độ… Ngay cả khi lý thuyết điều khiển hiện đại được sử dụng, thì sự kết hợp giữa các phương pháp điều khiển hiện đại và bộ điều khiển PID kinh điển vẫn đem lại những hiệu quả bất ngờ. Đối với những hệ thống thay đổi theo thời gian, những thông số của bộ điều khiển PID phải được hiệu chỉnh thường xuyên cho phù hợp với những thay đổi không biết trước của hệ thống cũng như môi trường ngoài. Đáp ứng được điều đó thì mới có thể đảm bảo được những yêu cầu làm việc của hệ thống. Nếu như ta tự động hóa được việc thay đổi những thông số này, bộ điều khiển PID sẽ là bộ điều khiển bền vững với mọi thay đổi của hệ thống cũng như những tác động của môi trường bên ngoài. Các khâu trong bộ điều khiển PID Bộ điều khiển PID bao gồm các khâu tỉ lệ, vi phân và tích phân tạo thành các bộ điều khiển tỉ lệ P, bộ điều khiển vi phân tỉ lệ PD, bộ điều khiển tích phân tỉ lệ PI và bộ điều khiển vi tích phân tỉ lệ PID. o Bộ điều khiển tỉ lệ P Bộ điều khiển loại này tạo tín hiệu ra điều khiển u(t) tỉ lệ với độ sai lệch e(t). Càng gia tăng độ tỉ lệ thì sai số tạo ra càng nhỏ. Điều này không có nghĩa là độ tỉ lệ (độ lợi) càng cao thì càng tốt, bởi vì khi độ lợi càng lớn thì khuynh hướng dao động của biến điều khiển càng tăng. Do đó, cần có một sự dung hòa sao cho độ lợi lớn mà không tạo nên sự dao động. Chúng ta nhận thấy rằng không thể nào loại trừ hoàn toàn được sai số, mà luôn tồn tại một khoảng sai lệch tĩnh, được gọi là độ sai lệch tỉ lệ (propotional offset). Độ lớn của sai lệch tĩnh này tỉ lệ thuận với độ lớn của sự thay đổi trên tải và tỉ lệ nghịch với độ lợi. Do đó, bộ điều khiển tỉ lệ chỉ được dùng khi độ lợi đủ lớn để có thể giảm sai lệch tĩnh đến mức có thể chấp nhận được. Tuy nhiên, ưu điểm của bộ điều khiển tỉ lệ là đáp ứng ngay tức khắc. Không hề có một khoảng thời gian trễ nào kể từ khi xảy ra sự thay đổi trên tải
PHATTRIENCONGNGHE.COM
Trang 21
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID cho đến khi có tín hiệu ra điều khiển. Vì vậy, có thể dùng bộ điều khiển tỉ lệ cho những quá trình có độ quán tính nhỏ. Phương trình trong miền thời gian u(t) = KP .e(t) Trong đó:
KP gọi là hệ số khuếch đại e(t) là độ sai lệch
Hàm truyền: GP (s) = KP o Điều khiển tích phân I Bộ điều khiển tích phân tạo tín hiệu điều khiển bằng một lượng tỉ lệ với tích phân sai lệch của biến điều khiển. Vì thế, nếu vẫn còn sai số thì bộ điều khiển vẫn còn làm việc; và tạo sự thay đổi của tín hiệu ra tỉ lệ với tích phân độ lệch. Hình bên dưới minh họa mối liên hệ giữa sai lệch và tín hiệu ra của hệ thống.
Sai lệch và đáp ứng của bộ điều khiển tích phân Bộ điều khiển tích phân thường dùng kết hợp với bộ điều khiển tỉ lệ nhằm triệt tiêu sai lệch tĩnh. Phương trình trong miền thời gian của bộ điều khiển tích phân được biểu diễn như sau:
PHATTRIENCONGNGHE.COM
Trang 22
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
u(t ) = K ∫ e(t )dt I Hàm truyền:
G ( s) = Trong đó:
1 U ( s) K I = = E (s) s T s I.
TI =
1 gọi là hằng số thời gian tích phân KI
o Bộ điều khiển vi phân D Bộ điều khiển vi phân tạo tín hiệu ra điều khiển dựa trên tốc độ thay đổi của sai lệch. Sự thay đổi này có thể là do giá trị biến điều khiển thay đổi, thay đổi điểm đặt hoặc cả hai. Điều khiển vi phân chống lại sai lệch bằng cách xem nó thay đổi nhanh như thế nào, và dùng tốc độ thay đổi đó để tạo tín hiệu điều khiển nhằm làm giảm sai lệch. Hình bên dưới minh họa đáp ứng của bộ điều khiển vi phân theo độ sai lệch của biến điều khiển.
Sai lệch và đáp ứng của bộ điều khiển vi phân Trong mỗi khoảng thời gian, đầu ra của bộ điều khiển vi phân tỉ lệ với độ dốc (tốc độ thay đổi) của tín hiệu sai lệch. Dựa vào đồ thị ta có thể nhận định rằng, không bao giớ có bộ điều khiển vi phân lý tưởng trong thực tế. Khi hàm
PHATTRIENCONGNGHE.COM
Trang 23
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID nấc xuất hiện, độ dốc của tín hiệu ra là vô cùng. Điều này có nghĩa là đáp ứng của bộ điều khiển vi phân lý tưởng phải thay đổi với độ lớn là vô cùng. Trong thực tế, tốc độ thay đổi của bộ điều khiển có một giới hạn của nó. Đây lại là một ưu điểm bởi vì nó sẽ làm giảm độ điều khiển với những loại nhiễu thường gặp trong thực tế (đó cũng là lý do mà nếu có bộ điều khiển lý tưởng thì cũng không nên dùng). Tuy nhiên, bộ điều khiển vi phân không bao giờ được sử dụng đơn lẻ. Nguyên nhân là đầu ra của bộ điều khiển chỉ thay đổi khi sai lệch thay đổi. Nghĩa là, nếu sai lệch lớn mà không thay đổi thì bộ điều khiển vi phân cũng không làm gì cả, chấp nhận sai lệch đó. Do đó, nó thường được dùng với bộ điều khiển tỉ lệ P hoặc bộ điều khiển tích phân tỉ lệ PI. Phương trình trong miền thời gian được mô tả như bên dưới: y (t ) = K D
de(t ) dt
Hàm truyền:G(s) = KD .s o Bộ điều khiển tích phân tỉ lệ PI Bộ điều khiển tích phân tỉ lệ PI là sự kết hợp giữa bộ điều khiển tỉ lệ và bộ điều khiển tích phân nhằm mục đích triệt tiêu sai lệch tỉ lệ như đã nói ở trên. Trong khi bộ điều khiển tỉ lệ tạo tín hiệu ra tỉ lệ với độ sai lệch thì bộ điều khiển vi phân tạo tín hiệu ra tỉ lệ với tích phân của sai lệch. Do đặc tính của bộ điều khiển tích phân, sai lệch tĩnh của hệ thống sẽ được loại trừ. Nghịch đảo của KI chính là khoảng thời gian cần thiết để bộ điều khiển tích phân tạo ra sự thay đổi ở đầu ra bằng với sự thay đổi tạo ra bởi bộ điều khiển tỉ lệ. Hình bên dưới minh họa đáp ứng của bộ điều khiển tích phân tỉ lệ theo sai số của biến điều khiển.
PHATTRIENCONGNGHE.COM
Trang 24
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
Đáp ứng của bộ điều khiển tích phân tỉ lệ PI Bộ điều khiển tỉ lệ tích phân có ưu điểm triệt tiêu sai lệch nhờ thêm bộ điều khiển tích phân vào bộ điều khiển tỉ lệ. Tuy nhiên, việc thêm khâu tích phân vào cũng có nhược điểm làm gia tăng khuynh hướng dao động của biến điều khiển. Do đó, cần phải giảm hệ số tỉ lệ đi, điều đó làm hệ thống đáp ứng chậm hơn so với ban đầu. Nếu quá trình có độ trễ lớn, tín hiệu sai lệch nhận được sẽ không phản ánh đúng độ sai lệch thật sự. Nguyên nhân là do độ trễ này sẽ làm cho đáp ứng của hệ thống không còn đúng với sai lệch hiện tại, nghĩa là hệ làm việc trên tín hiệu cũ. Phương trình trong miền thời gian:
y(t ) = K .e(t ) + K .∫0t e(t ).dt P I Hàm truyền:
1+T .s K N = K (1+ 1 ) G ( s) = K + I = K P s P T .s P sT . N N o Bộ điều khiển vi phân tỉ lệ PD Bộ điều khiển vi phân thường được kết hợp với bộ điều khiển tỉ lệ nhằm làm giảm khuynh hướng dao động và cho phép nâng cao độ lợi. Trong đó, bộ
PHATTRIENCONGNGHE.COM
Trang 25
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID điều khiển tỉ lệ thay đổi đầu ra tỉ lệ với độ lớn của sai lệch, còn bộ điều khiển vi phân thay đổi đầu ra tỉ lệ với tốc độ biến đổi của sai lệch, tức là bộ điều khiển vi phân tính trước giá trị tương lai của sai lệch và thay đổi đầu ra tương ứng với sự tính toán đó. Chính điều này giúp bộ điều khiển vi phân rất tiện dụng trong quá trình điều khiển có tải thay đổi bất ngờ. Bộ PD lý tưởng là cấu trúc ghép song song giữa cơ cấu tỉ lệ và cơ cấu vi phân. Tín hiệu ra của bộ điều khiển PD là tổng tín hiệu ra của từng bộ điều khiển riêng lẻ. Phương trình theo miền thời gian được mô tả như bên dưới.
de(t ) de(t ) = K e(t ) +T u(t ) = u + u = K e(t ) + K V dt P D P D dt P Hàm truyền:
G(s) = K (1+ sT . ) P V o Bộ điều khiển vi tích phân tỉ lệ PID Bộ điều khiển vi tích phân tỉ lệ PID bao gồm cả ba bộ điều khiển vi phân, tích phân và tỉ lệ. Nhờ đó, bộ điều khiển PID kết hợp được tất cả những ưu điểm của cả ba bộ điều khiển: tỉ lệ giúp sai lệch bé, tích phân loại bỏ sai lệch tĩnh, vi phân giảm khuynh hướng dao động. Bộ PID lý tưởng là cấu trúc ghép song song ba bộ điều khiển tích phân, vi phân và tỉ lệ. Phương trình theo miền thời gian của bộ PID lý tưởng được trình bày bên dưới.
de(t ) u(t ) = K e(t ) + K ∫ e(t )dt + K P I D dt Hay:
K K de(t ) u(t ) = K e(t ) + I ∫ e(t )dt + D P K K dt P P
PHATTRIENCONGNGHE.COM
Trang 26
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID Trong đó: KP là hệ số khuếch đại của bộ PID KI là tốc độ tích phân, hay hệ số tích phân (s-1) KD là hệ số vi phân, hay hằng số thời gian vi phân K
I = 1 K T P N K K
D =T V P
với TN gọi là thời gian hiệu chỉnh gọi là thời gian tác động sớm
Hàm truyền: G (s) = K
1 + T .s + T .T .s 2 1 N N V 1 + + T .s = K P T .s V P T .s N N
hoặc: G (s) =
K U (s) =K + I +K s P D E (s) s
Ưu điểm của bộ điều khiển PID: • Sai lệch e(t) càng lớn, tín hiệu điều chỉnh u(t) càng lớn nhờ vai trò khuếch đại KP • Sai lệch e(t) chưa bằng 0, bộ điều khiển PID vẫn còn tạo tín hiệu điều chỉnh nhờ thành phần tích phân KI • Sự thay đổi của sai lệch càng lớn, phản ứng thích hợp của u(t) sẽ càng nhanh nhờ thành phần PD Bộ điều khiển PID được ứng dụng nhiều trong các hệ thống tự động đòi hỏi tính ổn định, độ chính xác và tốc độ đáp ứng mà những bộ điều khiển thông thường không thể thực hiện được như: ổn định tốc độ động cơ vị trí, hệ thống lò nhiệt, điều khiển mức, lưu lượng, công nghệ robot…
PHATTRIENCONGNGHE.COM
Trang 27
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
2.Thuật toán PID số Có nhiều kiểu điều khiển khác nhau có thể áp dụng cho hệ rời rạc. Cách điều khiển thường dùng trong công nghiệp là hiệu chỉnh nối tiếp với bộ PID số. Thiết kế bộ điều khiển PID số là xác định hàm truyền với các thông số tối ưu của bộ PID số để hệ thống thoả mãn yêu cầu về độ ổn định, thời gian quá độ, sai số xác lập. Từ thuật toán ta xây dựng phương trình sai phân và viết hàm truyền thể hiện quan hệ ngõ vào ngõ ra của Xuất phát từ mô tả toán học của hệ liên tục:
u (t ) = u P (t ) + u I (t ) + u D (t ) T
= K P e(t ) + K I ∫ e(t )dt + K D 0
de dt
Khi chuyển sang mô hình rời rạc thì u(t) thay bằng uK=u(k)
u k = u kP + u kI + u kD
a.
Khâu tỉ lệ u P (t ) = K P e(t ) được thay bằng:
Bộ điều khiển tỉ lệ sinh ra hành động điều khiển tỉ lệ với sai lệch.
u
P k
= K
P
ek
Khi tăng Kp sẽ cho phép giảm sai lệch, giảm thời gian tăng trưởng nhưng độ vọt lố tăng, do đó tăng tần số dao động và thời gian quá độ.
PHATTRIENCONGNGHE.COM
Trang 28
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
T
b
.Khâu tích phân u I (t ) = K I e(t )dt được thay
∫ o
bằng :
u =u I k
I k −1
ekI + ekI −1 + KI T 2
Bộ điều khiển tích phân sinh ra hành động điều khiển liên tục tăng khi tín hiệu sai lệch vẫn còn. Khi tăng Ki sẽ cho phép giảm nhanh thời gian tăng trưởng, hệ thống đáp ứng nhanh, tuy nhiên độ vọt lố tăng dễ dẫn đến dao động của hệ thống. Sự tồn tại của thành phần Ki sẽ cho phép loại bỏ hẳn sai số.
C. Khâu vi phân u D (t ) = K D
u kD = K D
de(t ) được thay bằng sai phân lùi dt
e k − e k −1 T
Bộ điều khiển vi phân sinh ra hành động điều khiển tỉ lệ với tốc độ biến đổi của tín hiệu sai lệch .Mặc dù khâu vi phân không ảnh hưởng đến sai số nhưng khi tăng Kd sẽ giảm được độ vọt lố và thời gian quá độ Ảnh hưởng của sự tăng các thông số Ki,Kp,Kd đến đáp ứng ngõ ra được tổng kết ở bảng sau:
PHATTRIENCONGNGHE.COM
Trang 29
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
Đáp ứng của hệ
Rise time
Over shoot
Setting time
Steady-state
thống
error
Kp
Giảm
Tăng
Ít thay đổi
Giảm
Ki
Giảm
Tăng
Tăng
Triệt tiêu
Kd
Ít thay đổi
Tăng
Giảm
Ít thay đổi
Các khâu P,I,D hiệu chỉnh trực tiếp và đồng thời sai số trong hệ thống điều khiển kín. Ngoài ra còn có thể hiệu chỉnh PID trên đường tín hiệu phản hồi
PHATTRIENCONGNGHE.COM
Trang 30
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
V.Giao tiếp giữa máy tính và vi điều khiển. 1.Chuẩn truyền thông nối tiếp RS 232 RS-232 là một trong những chuẩn truyền thông được sử dụng phổ biến hiện nay bên cạnh hai chuẩn truyền thông khác là RS-442 và RS-485. Lúc đầu, RS-232 được xây dựng chủ yếu phục vụ trong ghép nối điểm – điểm giữa hai thiết bị đầu cuối (DTE – Data Terminal Equipment), chẳng hạn như giữa hai máy tính, giữa máy tính và máy in, máy tính và modem… ĐƯỜNG RS-232
DTE
MODEM (DCE)
MODEM (DCE)
DTE
VIỄN THÔNG
Đường truyền RS 232 Ngày nay, mỗi máy tính cá nhân đều có một hoặc một vài cổng nối tiếp theo chuẩn RS-232 (cổng COM), có thể sử dụng để kết nối với các thiết bị ngoại vi hoặc các máy tính khác. Nhiều thiết bị công nghiệp cũng tích hợp cổng RS-232 phục vụ cho công việc lập trình hoặc tham số hóa. 2.Cấu tạo cổng RS-232 (cổng COM) Cổng RS-232 có ba loại giắc cắm khác nhau: dạng 9 chân DB – 9, dạng 25 chân DB – 25, và dạng 26 chân ALT – A. Trong đó, hai dạng DB – 9 và DB – 25 được sử dụng phổ biến hơn. Trong đề án này, loại DB – 9 được sử dụng vì nó khá phổ biến và được hỗ trợ cho hầu hết các máy tính ngày nay. Sơ đồ chân và ý nghĩa các chân được trình bày bên dưới. • TxD (Transmit Data): đường gửi dữ liệu • RxD (Receive Data): đường nhận dữ liệu
PHATTRIENCONGNGHE.COM
Trang 31
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID • RTS (Request To Send): Yêu cầu gửi; bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu. • CTS (Clear To Send): Xoá để gửi; bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu.
(a) Sơ đồ giắc cắm
(b) Sơ đồ chiều tín hiệu
DCD RxD DSR RTS CTS RI
TxD
DCD RxD
DTR
TxD
GND DSR
DTR
RTS
GND
CTS DSR RTS CTS RI
Data Set Ready Request To Send Clear To Send Ring Indicator
DCD RxD TxD DTR Ready
Data Carrier Detect Receive Data Transmit Data Data Terminal
Cấu tạo cổng COM • DSR (Data Set Ready): Dữ liệu sẵn sàng; tính hoạt động giống với CTS nhưng được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu. • SG (Signal Ground): Đất của tín hiệu. • DCD (Data Carrier Detect): Phát hiện tín hiệu mang dữ liệu. • DTR (Data Terminal Ready): Đầu cuối dữ liệu sẵn sàng; tính hoạt động giống với RTS nhưng được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu. 3.Chế độ làm việc Chế độ làm việc của hệ thống RS-232 là hai chiều toàn phần (full – duplex), tức là hai thiết bị tham gia đều có thể thu phát tín hiệu cùng một lúc. Như vậy, việc truyền
PHATTRIENCONGNGHE.COM
Trang 32
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID thông cần tối thiểu là 3 dây dẫn; trong đó, hai dây tín hiệu nối chéo các đầu thu phát của hai trạm và một dây đất, như minh họa ở hình bên dưới. Với cấu hình tối thiểu này, việc đảm bảo độ an toàn(chính xác) truyền dẫn tín hiệu phụ thuộc trách nhiệm của phần mềm. TxD RxD RTS CTS DTR
TxD RxD RTS CTS DTR
DSR GND
DSR GND
Transmit Data Receive Data Request To Send Clear To Send Data Terminal Ready Data Set Ready Ground
a) CÊu h×nh ghÐp nèi tèi thiÓu
TxD RxD RTS CTS DTR
TxD RxD RTS CTS DTR
DSR GND
DSR GND
b) ChÕ ®é b¾t tay
Cấu hình ghép nối theo chuẩn RS 232 Chương trình truyền nhận tín hiệu được viết dựa trên phần mềm VB. Máy tính thu nhận dữ liệu (giá trị lực theo thời gian) do người dùng nhập vào, rồi truyền xuống cho vi điều khiển PIC qua chân TxD. Sau đó, dữ liệu được nhận về từ chân RxD sẽ được xử lý và hiển thị lên màn hình đồ họa để so sánh, cho thấy độ đáp ứng của hệ thống.
PHATTRIENCONGNGHE.COM
Trang 33
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID VI.Sơ đồ kết nối phần cứng 1.Mạch điều khiển
Mạch điều khiển bao gồm : Bộ dao động thạch anh được nối vào 2 chân 13,14 của vi điều khiển. Cảm biến LM35 với đầu ra được nối với chân RA0 Mạch động lực được nối với chân CCP1 LCD 2.Mạch động lực Mạch động lực được nối với chân ccp1 của vi điều khiển Hai transitor Q1 va Q2 dùng để kích dẫn cho opt ovà tải.Tải là 1 đèn sợi đốt để sinh nhiệt.Opto dung để cách ly điện áp giữa mạch động lực và mạch điều khiển để mạch không bị nhiễu.
PHATTRIENCONGNGHE.COM
Trang 34
ĐIỀU KHIỂN NHIỆT ĐỘ LÒ NHIỆT BẰNG PHƯƠNG PHÁP PID
3.Module UART Việc truyền và nhận dữ liệu với máy tính được thực hiện thông qua cổng COM. IC MAX232 cho phép chuyển đổi qua lại giữa hai chuẩn TTL và RS232 khác nhau về mức điện áp quy định mức logic.RS232 [0]: +3V >> +12V [1]: -12V >> -3V TTL [0]: 0V [1]: 5V
VII.Lưu đồ giải thuật Lưu đồ chương trinh:
PHATTRIENCONGNGHE.COM
Trang 35
Lưu đồ tính toán P,I,D:
PHATTRIENCONGNGHE.COM
Trang 36
C.KẾT LUẬN Về cơ bản đồ án đã đưa ra được phương pháp điều khiển bằng PID.Tuy nhiên còn nhiều hạn chế .Nhóm sẽ cố gắng hoàn thiện và đưa vào ứng dụng trong thực tế đời sống và sản xuất.
PHỤ LỤC Chương trình CCS cho vi điều khiển PIC #define <16f877a.h> #include "16F877A.h" #device *=16 adc=8 #use delay(clock=20000000) #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) #include int8 read1,read2,m,thuc,dat_pc,dat=40,kp=100,kd=10,ki=2,error,pre_error; int16 P,I,D,sum,duty; #INT_RDA void serial_isr() {dat_pc=getc(); } void send_to_pc(int8 giatri) { printf("%2u\r",giatri); } void main () { set_tris_b(0); set_tris_a(0xFF); set_tris_d(0x00); set_tris_c(0x00); set_tris_b(0x00); // Khoi tao cho ngat ngoai enable_interrupts (INT_RDA); // ext_int_edge(H_TO_L); enable_interrupts (GLOBAL); //Khoi tao ADC setup_adc_ports(AN0_AN1_AN3); setup_adc(ADC_CLOCK_INTERNAL); delay_ms(50); // Khoi tao PWM setup_ccp1(ccp_pwm);
PHATTRIENCONGNGHE.COM
Trang 37
lcd_init(); Printf(LCD_putc,"\LOP 06118"); delay_ms(200); Printf(LCD_putc,"\fDO AN KI THUAT"); delay_ms(200); while(TRUE) { // m=(input_b()&0x01); // if(m=0x01)//Nhan cong tac Run // { set_ADC_channel(1);//Doc adc tu bien tro(nhiet do dat) // delay_ms(10); // read1=read_adc(); // dat=read1*0.1960784314; set_ADC_channel(0);//Doc ADC tu LM35 delay_ms(10); read2=read_adc(); thuc =read2*1.960784314; //Chuong trinh PID so error = dat-thuc; // tinh sai so P = KP*error; // tinh thanh phan ti le I = I+KI*(pre_error+error)/4; // thoi gian lay mau la 0.5s D = KD*(error-pre_error)*2; pre_error= error; // luu lai gia tri sai so truoc do sum = P+I+D; // tin hieu tong khi qua khau PID duty = sum; // cap nhat gia PID vao bo phat PWM if (duty>1023) duty=1023; // gia tri lon nhat cua thanh ghi PWM // if (error==0) // I=255; // duy tri nhiet do khi ngo ra dat yeu cau if (error<0) duty =0; // tat PWM khi ngo ra vot lo set_pwm1_duty(duty); // cho phep phat PWM voi gia tri duty cu the // if(m!=0) // { duty=0; // error=0; //} //Gui du lieu ra LCD lcd_init(); printf(lcd_putc,"\f\rSetpoin: %u\nrealtemp: %u",dat,thuc); delay_us(20); //Gui du du lieu ra PC // printf("%2Lu\r",thuc); send_to_pc(thuc);}}
PHATTRIENCONGNGHE.COM
Trang 38
PHATTRIENCONGNGHE.COM
Trang 39