Đất nước chúng ta đang trên đường phát triển và đang hòa nhập vào sự phát triển của WTO tạo sự thay đổi về mặt kinh tế xã hội của nước ta. Tạo cơ hội cho sinh viên chúng em tiếp cận và nắm bắt được những thành tựu của thế giới về các lĩnh vực khoa học kỹ thuật nói chung và ngành điện tử nói riêng. Hiện nay trong các nhà máy sản xuất hệ thống nhiệt độ được ứng dụng rất nhiều ( ví dụ nhà máy sản xuất răng sứ giả cao cấp…vv). Chính vì thế là một sinh viên nghành tự động hóa là một nghành rất quan trọng trong công nghiệp hóa hiện đại hóa đất nước nên em quyết định làm đề tài Điều Khiển Nhiệt Độ Nhiều Kênh Dùng dsPIC 30F4013 Có Giao Tiếp Với Máy Tính Và Thuật Toán Điều Khiển ONOFF Và Thuật Toán PID Số.
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN CHUYÊN NGHÀNH
Đề Tài:
ĐIỀU KHIỂN NHIỆT ĐỘ NHIỀU KÊNH DÙNG dsPIC 30F4013 CÓ
GIAO TIẾP MÁY TÍNH
Mã số sinh viên : 12157241
Tp Hồ Chí Minh, tháng 12 năm 2014
Trang 2LỜI CẢM ƠN
Đề tài đã được hoàn thành theo đúng thời gian yêu cầu của nhà trườngcũng như của khoa Và để đạt được kết quả này, đó không chỉ là sự nỗ lực củabản thân em mà còn có sự giúp đỡ chỉ bảo của các thầy cô và các bạn tronglớp
Trước tiên em muốn dành gởi tình cảm chân thành đến thầy HUỲNH
MINH NGỌC đã tận tình hướng dẫn và giúp đỡ chỉ bảo cho em trong suốt
quá trình thực hiện đồ án này Sự hướng dẫn nhiệt tình và kịp thời của ThầyNgọc đã giúp em hoàn thành đề tài này Xin chân thành cám ơn Thầy
Xin cảm ơn các bạn sinh viên trong lớp đã giúp đỡ em rất nhiều mặt nhưphương tiện, sách vở, ý kiến
Mặc dù đề tài đã xong nhưng do kiến thức còn hạn hẹp sẽ không tránhkhỏi những thiếu sót và hạn chế Rất mong nhận được sự góp ý, phê bình, chỉdẫn của quý thầy cô, các bạn sinh viên
SVTH: ĐẶNG MINH TÂM
Trang 1
Trang 3
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
SVTH: ĐẶNG MINH TÂM
Trang 2
Trang 4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
……….
……….
……….
……….
……….
……….
……….
……….
………
………
……….
……….
……….
………
… ………
………
………
………
………
………
………
………
………
………
………
………
SVTH: ĐẶNG MINH TÂM
Trang 3
Trang 6Mục lục
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 6
1.1 Giới thiệu : 6
2.2 Lí do chọn đề tài: 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN dsPIC 30F4013 7
2.1.1 Sơ đồ chân của dsPIC30F4013 8
2.1.2 CPU của dsPIC30F4013 10
2.1.3 Các bộ định thời 11
2.1.4 Sơ đồ khối của vi điều khiển dsPIC30F4013 17
2.1.5 Tổ chức bộ nhớ: 18
2.1.6 Các cổng xuất nhập 20
2.1.7 Ngắt và cơ chế ngắt 21
2.1.8 Bộ chuyển đổi tương tự số ADC 23
2.2 THUẬT TOÁN PID 24
2.2.1 PID liên tục 24
2.2.2 PID số 28
2.3 THUẬT TOÁN ON/OFF 30
2.4 HÀM TRUYỀN LÒ NHIỆT 31
2.4.1 Mô hình hệ thống nhiệt độ: 31
2.4.2 Hàm truyền lò nhiệt và mô hình của Ziegler - Nichols 32
2.5 TÌM HÀM TRUYỀN LÒ NHIỆT CỦA ĐỀ TÀI 33
2.5.1 Khảo sát hệ hở 2 lò nhiệt 33
2.5.2 Hàm truyền lò 1 33
2.5.3 Hàm truyền lò 2 34
2.5.4 Kết luận: 35
2.6 SƠ LƯỢC VISUAL BASIC 2005 35
2.6.1 Các thuộc tính của serialport: 35
2.6.2 Teechart 8: 36
CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG MÔ HÌNH 37
3.1 THIẾT KẾ PHẦN CỨNG 37
SVTH: ĐẶNG MINH TÂM
Trang 5
Trang 73.1.1 Giới thiệu sơ đồ khối của mô hình: 37
3.1.2 Các khối chức năng trên mô hình 37
3.1.3 Mạch vi điều khiển trung tâm 37
3.1.4 Mạch công suất 38
3.1.5 Mạch giao tiếp máy vi tính 41
3.1.6 Cảm biến nhiệt LM35, bóng đèn dây tóc, quạt 42
3.2 GIẢI THUẬT CHƯƠNG TRÌNH 44
3.2.1 Đối tượng điều khiển 44
3.2.2 Cách tính nhiệt độ trong đề tài 44
3.2.3 Cách tính toán PWM duty trong đề tài 44
3.2.4 Chương trình chính 46
3.2.5 Chương trình PID 46
3.2.6 Chương trình ON/OFF 47
3.2.7 Chương trình kết nối với máy tính 49
3.2.8 Chương trình ngắt dữ liệu trên máy tính 50
CHƯƠNG 4 KẾT QUẢ THI CÔNG 51
4.1 Giao diện điều khiển trên visual basic 2005: 51
4.2 Mô hình 51
4.3 Kết quả thực nghiệm trên mô hình 52
4.3.1 Thực nghiệm 1 52
4.3.2 Thực nghiệm 2 53
4.3.3 Thực nghiệm 3 53
4.3.4 Thực nghiệm 4 54
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 55
5.1 Kết luận 55
5.2 Một số điểm hạn chế 55
5.3 Hướng phát triển đề tài: 55
CHƯƠNG 6 TÀI LIỆU THAM KHẢO 56
CHƯƠNG 7 PHỤ LỤC 57
SVTH: ĐẶNG MINH TÂM
Trang 6
Trang 8CHƯƠNG 1 TỔNG QUAN
VỀ ĐỀ TÀI 1.1 GIỚI THIỆU :
Trong quá trình học tập tại trường với những giáo án, giáo trình các môn học của nghành điện tử tự động đã học và em kết hợp những gì em đã học để em làm đề tài Điều Khiển Nhiệt Độ Nhiều Kênh Dùng dsPIC 30F4013 Có Giao Tiếp Với Máy Tính Và Thuật Toán Điều Khiển ON/OFF Và Thuật Toán PID
Số Thuật toán ON/OFF và PID số được viết trên chương trình CCS và nạp vào vi điều khiển PIC điều khiển hệ 2 lò nhiệt Phần giao diện được thiết kế trên chương trình Visual Basic 2005 để đặt nhiệt độ gửi xuống vi điều khiển
và nhận nhận nhiệt độ đo được từ vi điều khiển vẽ đồ thị bằng Teechart để đánh giá chất lượng điều khiển
2.2 LÍ DO CHỌN ĐỀ TÀI:
Đất nước chúng ta đang trên đường phát triển và đang hòa nhập vào sự phát triển của WTO tạo sự thay đổi về mặt kinh tế xã hội của nước ta Tạo cơ hội cho sinh viên chúng em tiếp cận và nắm bắt được những thành tựu của thế giới
về các lĩnh vực khoa học kỹ thuật nói chung và ngành điện tử nói riêng Hiện nay trong các nhà máy sản xuất hệ thống nhiệt độ được ứng dụng rất nhiều ( ví
dụ nhà máy sản xuất răng sứ giả cao cấp…vv) Chính vì thế là một sinh viên nghành tự động hóa là một nghành rất quan trọng trong công nghiệp hóa hiện đại hóa đất nước nên em quyết định làm đề tài Điều Khiển Nhiệt Độ Nhiều Kênh Dùng dsPIC 30F4013 Có Giao Tiếp Với Máy Tính Và Thuật Toán Điều Khiển ON/OFF Và Thuật Toán PID Số
SVTH: ĐẶNG MINH TÂM
Trang 7
Trang 9
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN dsPIC 30F4013
- 16 bit CPU, xây dựng theo kiến trúc Harvard
- Kiến trúc thay đổi Harvard
- Ngôn ngữ C tối ưu hóa kiến trúc tập lệnh
- Tập lệnh cơ bản gồm 84 lệnh
- Chế độ định địa chỉ linh hoạt
- Độ dài lệnh 24-bit, độ dài dữ liệu 16-bit
- Bộ nhớ chương trình Flash 48 Kbytes
- Bộ nhớ RAM độ lớn 2Kbytes
- Bộ nhớ EEPROM 1 Kbytes
- Mảng 16 thanh ghi làm việc 16-bit
- Tốc độ làm việc lên tới 30 MIPS
- Dòng ra, vào ở các chân I/O lớn: 25 mA
- 5 Timer 16-bit, có thể ghép 2 Timer 16-bit thành Timer 32-bit
- Chức năng Capture 16-bit
- Các bộ so sánh/PWM 16-bit
- Module SPI 3 dây (hỗ trợ chế độ Frame)
- Module I2C, hỗ trợ chế độ đa chủ tớ, địa chỉ từ 7-bit đến 10-bit
- UART có khả năng địa chỉ hoá, hỗ trợ bộ đệm FIFO
- Nạp dữ liệu song song
- Hai thanh chứa 40-bit có hỗ trợ bão hoà logic
- Thực hiện phép nhân 2 số17-bit trong một chu kì máy
- Tất cả các lệnh DSP đều thực hiện trong một chu kì máy
- Dịch trái hoặc phải 16 bit trong một chu kì máy
- Bộ nhớ Flash: ghi/xoá lên tới 10.000 lần (điều kiện công nghiệp) và trêndưới 100.000 lần (thông thường)
- Khả năng tự nạp chương trình dưới điều khiển của software
SVTH: ĐẶNG MINH TÂM
Trang 8
Trang 10
- Watch Dog Timer mềm dẻo với bộ dao động RC nguồn thấp trên chip.
- Chế độ bảo vệ firmware khả lập trình
- Khả năng tự lập trình nối tiếp trên mạch điện (In Circuit SerialProgramming – ICSP)
- Có thể lựa chọn các chế độ quản lí nguồn: Sleep hoặc Idle
2.1.1 Sơ đồ chân của dsPIC30F4013
Hình 2.1 Sơ đồ chân của DSPIC30F4013
Ý nghĩa các chân của dsPIC30F4013:
SVTH: ĐẶNG MINH TÂM
Trang 9
Trang 11
Hình 2.2 ý nghĩa các chân của dsPIC30F4013
SVTH: ĐẶNG MINH TÂM
Trang 10
Trang 12
2.1.2 CPU của dsPIC30F4013
CPU của dsPic30F4013 được thiết kế trên kiến trúc RISC, nhân của CPU
có một bộ xử lí lệnh 24-bit và bộ đếm chương trình – Program Counter (PC)
độ rộng 23-bit với bit ý nghĩa thấp nhất luôn bằng 0, còn bít ý nghĩa cao nhất thì được bỏ qua trong suốt quá trình thực hiện chương trình bình thường, chỉ trừ khi thực hiện các lệnh đặc biệt Do đó, bộ đếm chương trình có thể định địa chỉ lên tới 4 triệu từ lệnh của không gian bộ nhớ chương trình được sử dụng
dsPIC30F4013 chứa 16 thanh ghi làm việc 16-bit Mỗi thanh ghi làm việc có thể làm việc với vai trò như dữ liệu, địa chỉ hoặc thanh ghi địa chỉ offset Thanh ghi thứ 16 (W15) hoạt động như là con trỏ ngăn xếp mềm cho hoạt động ngắt và gọi ngắt
Các chỉ lệnh của dsPIC30F gồm 2 lớp: Lớp MCU và Lớp DSP của lệnh Hai lớp này được kết hợp đồng nhất với nhau trong kiến trúc và thực hiện từ một khối thực hiện đơn Các chỉ lệnh bao gồm nhiều chế độ địa chỉ và được chế tạo nhằm tương thích với trình biên dịch ngôn ngữ C
Không gian dữ liệu có thể được địa chỉ hoá thành 32K words hoặc 64 Kbytes
và được chia làm hai khối, được gọi là bộ nhớ dữ liệu X và bộ nhớ dữ liệu Y Mỗi khối đều có khối tạo địa chỉ - AGU (Adress Generator Unit) riêng biệt của nó Tất cả các lệnh hoạt động đơn độc chỉ qua bộ nhớ X, và khối AGU –quy định sự xuất hiện của một vùng dữ liệu thống nhất Lớp thanh chứa phép nhân (Multiply-Accumulate) – MAC của lệnh DSP hoạt động thông qua cả hai khối AGU của bộ nhớ X và Y, nó chia địa chỉ dữ liệu thành hai phần Mỗi
từ dữ liệu gồm 2-bytes, và tất cả các lệnh có thể định địa chỉ dữ liệu theo byteshoặc words (từ)
Có hai cách để truy xuất dữ liệu trong bộ nhớ chương trình đó là:
- 32Kbytes cao của vùng nhớ dữ liệu có thể được sắp xếp trong nửa thấp của không gian chương trình tại biên của 16K từ chương trình bất kỳ, được định nghĩa bởi thanh ghi PSVPAG 8-bit (Program Space Visibility Page) Do đó, các lệnh có thể truy cập không gian chương trình như không gian dữ liệu,
SVTH: ĐẶNG MINH TÂM
Trang 11
Trang 13
nhưng có một giới hạn là nó cần thêm một chu kỳ lệnh nữa Chỉ có 16 bít thấp của mỗi từ lệnh có thể sử dụng phương thức truy cập này
- Truy cập trực tiếp không tuyến tính của các trang 32K từ nằm trong không gian chương trình cũng có thể sử dụng các thanh ghi làm việc, thông qua bảng lệnh đọc và ghi Bảng lệnh đọc và ghi có thể được sử dụng để truy cập cả 24 bit của một từ lệnh
Khối X AGU (khối AGU của bộ nhớ X) cũng hỗ trợ việc đảo bit địa chỉ trên địa chỉ đích kết quả nhằm đơn giản hoá tối đa dữ liệu vào hoặc ra để chúng thích hợp ho thuật toán FFT cơ số2
Với tất cả các lệnh, nhân của dsPIC30F có khả năng thực hiện việc đọc bộ nhớ
dữ liệu hoặc bộ nhớ chương trình, đọc thanh ghi làm việc, ghi vào thanh ghi làm việc và đọc bộ nhớ chương trình mỗi chu kì lệnh Như vậy, lệnh 3 toán hạng được hỗ trợ, cho phép thực hiện phép tính C = A + B trong một chu kì lệnh
Các thanh ghi của khối xử lý trung tâm:
Hình 2.3 Thanh ghi xử lý trung tâm
SVTH: ĐẶNG MINH TÂM
Trang 12
Trang 14
2.1.3 Các bộ định thời
Trong vi xử lý dsPIC30F4013 có tới năm bộ định thời (Timer) 16-bit.Trong đó các Timer có thể hoạt động riêng biệt, riêng hai Timer 2, 3 và haiTimer 4, 5 có thể kết hợp với nhau để trở thành một Timer 32 bit
Timer 1 có thể hoạt động với nguồn tạo dao động tần sốthấp 32KHz, và chế độkhông đồng bộ với nguồn tạo dao động ngoài Đặc điểm riêng biệt của Timer
1 đó là có thể dùng trong các ứng dụng thời gian thực Và các timer khác cònlại thì hoạt động tương tự
Phần tiếp theo sẽ mô tả chi tiết cách thiết lập và sử dụng Timer 1 với ba chếđộ:
- Timer 16-bit: trong chế độ này, timer sẽ tăng sau mỗi chu kỳ lệnh đến khigiá trị của timer bằng giá trị của thanh ghi chu kỳ PR1 (Period Register) thì sẽreset về 0 và tiếp tục đếm
- Counter đồng bộ16-bit: trong chế độ này, timer sẽ tăng ở mỗi sườn lên củacủa xung nhịp ngoài mà được đồng bộ với pha của các xung nhịp trong Timertăng đến giá trị nằm trong thanh ghi PR1 thì dừng và reset timer về 0 rồi tiếptục đếm lên
- Counter không đồng bộ16-bit: khi hoạt động trong chế độ này, timer sẽ tăngdần sau mỗi sườn lên của xung nhịp bên ngoài tác động vào Timer sẽ tăngdần đến khi giá trị của nó bằng thanh ghi PR1 thì bị reset về 0 rồi lại tiếp tụcđếm lên
Hệ số chia tần của bộ định thời:
Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer bit và có thể được chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xácđịnh bởi các bit TCKPS<1:0> của thanh ghi TxCON Hệ số chia tần này(prescaler) có thể bị xoá khi xảy ra một trong các điều kiện sau:
Trang 15+ DsPic30F4013 có 5 thanh ghi điều khiển Timer T1CON T5CON Cácthanh ghi này được chia ra làm 2 kiều T1CON thuộc kiểu A, T2CON vàT4CON thuộc kiểu B, T3CON và T5CON thuộc kiểu C.
Hình 2.4 Sơ đồ khối của Timer1(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 14
Trang 16
Hình 2.5 Sơ đồ khối của Timer 2(16 bit)
Hình 2.6 Sơ đồ khối của Timer 3(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 15
Trang 17
Hình 2.7 Sơ đồ khối của Timer 2+3(32 bit)
Hình 2.8 Sơ đồ khối của Timer 4(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 16
Trang 18
Hình 2.9 Sơ đồ khối của Timer 5(16 bit)
Hình 2.10 Sơ đồ khối của Timer 4+5(32 bit)
SVTH: ĐẶNG MINH TÂM
Trang 17
Trang 19
2.1.4 Sơ đồ khối của vi điều khiển dsPIC30F4013
Hình 2.11 Sơ đồ khối vi điều khiển dsPIC30F4013
2.1.5 Tổ chức bộ nhớ:
Không gian địa chỉ chương trình:
Không gian địa chỉ chương trình có độ lớn 4M từ lệnh Bản đồ không gian bộ nhớ chương của dsPic30F4013 được chỉ ra trong Hình 2.12
Bộ nhớ chương trình có thể được địa chỉ hoá bởi một giá trị 24-bit bởi bộ đếm chương trình (PC), hoặc bảng lệnh địa chỉ hiệu dụng (EA), hoặc không gian
SVTH: ĐẶNG MINH TÂM
Trang 18
Trang 20
dữ liệu EA khi không gian chương trình được sắp xếp và địa chỉ hoá Chú ý rằng, địa chỉ không gian chương trình được tăng lên với bước là 2 giữa các từ chương trình để tạo ra sự tương thích với việc địa chỉ hoá không gian dữ liệu Truy cập không gian chương trình người sử dụng bị giới hạn trong dải 4M địachỉ của từ lệnh (từ 0x000000 tới 0x7FFFFE) với tất cả các lệnh truy cập.Trừ hai lệnh TBLRD/TBLWT - sử dụng bit 7 của thanh ghi TBLPAG để xác địnhngười sử dụng hoặc thiết lập cấu hình truy cập bộ nhớ.
Hình 2.12 Bản đồ không gian bộ nhớ chương trình
Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng:
Kiến trúc của dsPIC cho phép nạp dữ liệu rộng 24-bit tới bộ nhớ chương trình,
do đó các lệnh luôn luôn được xếp hàng tuy nhiên kiến trúc của nó có cải tiến
so với kiến trúc máy tính Hadvard nên dữ liệu cũng có thể được đưa ra ở trongkhông gian chương trình
Có hai phương pháp truy cập không gian chương trình, đó là:
SVTH: ĐẶNG MINH TÂM
Trang 19
Trang 21
- Thông qua các lệnh đặc biệt về bảng hoặc thông qua việc định địa chỉ
và sắp xếp lại 16K trang từ không gian chương trình trong nửa cao của không gian dữ liệu Các lệnh TBLRDL và TBLWTL cung cấp phương pháp đọc và ghi trực tiếp từ ít ý nghĩa nhất (LS Word) tại một địa chỉ bất kỳ trong không gian chương trình mà không cần thông qua không gian dữ liệu Hai lệnh TBLRDH và TBLWTH chỉ là phương thức mà 8 bít cao của từ không gian chương trình có thể được truy xuất như dữ liệu
- Bộ đếm chương trình (PC) được tăng lên hai với mỗi từ chương trình 24-bit Điều này cho phép các địa chỉ bộ nhớ chương trình ánh xạ trực tiếp tới địa chỉ không gian dữ liệu Do đó bộ nhớ chương trình có thể được xem như hai không gian từ địa chỉ độ rộng 16-bit Các lệnh TBLRDL và TBLWTL truy cập không gian chứa từ dữ liệu ít ý nghĩa nhất (LS Data Word) và các lệnh TBLRDH, TBLWTH truy cập không gian chứa Byte dữ liệu nhiều ý nghĩa nhất (MS Data Byte)
Sơ đồ trên chỉ ra cách EA được tạo cho hoạt động bảng và truy cập không gian dữ liệu (PSV = 1) Tại đây P (từ bit 23 tới bit 0) chỉ thị từ không gian chương trình, còn D (từ bit 15 tới bit 0) chỉ thị từ không gian dữ liệu Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng không gian chươngtrình:
32 Kbytes cao của không gian dữ liệu có thể được bản đồ hoá trong bất kỳ trang 16K từ bộ nhớ chương trình nào Nó cho phép truy cập vào hằng số dữ liệu được lưu trữ từ không gian dữ liệu X mà không cần các lệnh đặc biệt (nhưTBLRDL/H, TBLWTL/H)
Hình 2.13 Truy cập dữ liệu từ không gian chương trình
SVTH: ĐẶNG MINH TÂM
Trang 20
Trang 22
Truy xuất dữ liệu ở vùng này sẽ thêm vào một chu kỳ lệnh để lệnh được thực hiện, do đó nạp dữ liệu vào hai bộ nhớ chương trình là cần thiết Chú ý rằng chỉ phần cao của không gian dữ liệu có khả năng định địa chỉ thi luôn là một phần của không gian dữ liệu X.
Hình 2.14 Ánh xạ không gian dữ liệu vào không gian bộ nhớ chương trình
+ Thanh ghi cổng (PORT registers): dữ liệu ở một cổng I/O được truy xuất thông qua thanh ghi PORTx Đọc giá trị của thanh ghi PORT cổng nào sẽ có được giá trị của cổng đó Ghi vào thanh ghi PORT của cổng tương đương việcxuất dữ liệu ra cổng đó
+ Thanh ghi LAT, kết hợp với một cổng I/O sẽ loại bỏ được các vấn đề có thểxuất hiện khi đọc-thay đổi-ghi vào cổng đó Đọc giá trị thanh ghi LAT sẽ trả
về giá trị được giữ ở đầu ra của bộ chốt cổng đó, thay cho giá trị ở cổng I/O
SVTH: ĐẶNG MINH TÂM
Trang 21
Trang 23
Việc ghi vào thanh ghi LATx cũng tạo ra hiệu quả như ghi vào thanh ghi PORTx.
Hình 2.15 Các cổng I/O của dsPIC 30F4013
2.1.7 Ngắt và cơ chế ngắt
Vi điều khiển dsPic30F4013 có tới 30 nguồn ngắt và 4 bộ xử lý loại trừ (bẫy lỗi), bộ xử lý này sẽ cho phép các ngắt theo mức ưu tiên được sắp đặt trước
CPU có thể đọc bảng vector ngắt và truyền địa chỉ được chứa trong vector ngắt tới bộ đếm chương trình Vector ngắt được truyền từ bus dữ liệu chương trình vào trong bộ đếm chương trình thông qua bộ hợp kênh 24-bit, lối vào của
bộ đếm chương trình
Bảng vector ngắt (Interrupt Vector Table - IVT) và bảng vector ngắt thay thế (Alternate Interrupt Vector Table - AIVT) được đặt gần điểm bắt đầu bộ nhớ chương trình (0x000004) IVT và AIVT được chỉ ra trong tất cả các cờ ngắt được lưu trong 3 thanh ghi này Các cờ được đặt tương ứng bởi của ngoại
vi hoặc tín hiệu bên ngoài và có thể xoá bằng phần mềm
SVTH: ĐẶNG MINH TÂM
Trang 22
Trang 24
- Các thanh ghi 16-bit: IEC0<15:0>, IEC1<15:0>, IEC2<15:0>: Tất cả các bitđiều khiển cho phép ngắt đều nằm trong 3 thanh ghi này Các bit này được sử dụng để cho phép ngắt độc lập ngoại vi và tín hiệu ngoài.
Hình 2.16 Vector ngắt của dsPIC 30F4013
- Các thanh ghi ưu tiên ngắt: IPC0<15:0> IPC10<7:0>: Người sử dụng có thể chuyển đổi mức ưu tiên ngắt kết hợp với mỗi ngắt được giữ trong các thanh ghi này
- Nhóm bit IPL<3:0>: Mức độ ưu tiên của CPU hiện hành được lưu rõ ràng trong các bit này Bit IPL<3> nằm trong thanh ghi CORCON, trong khi đó cácbit IPL<2:0> nằm trong thanh ghi trạng thái (SR)
- Hai thanh ghi 16-bit INTCON1<15:0>, INTCON2<15:0>: Chức năng điều khiển ngắt toàn cục được xuất phát từ hai thanh ghi này INTCON1 chứa các
cờ điều khiển và trạng thái của bộ xử lý loại trừ INTCON2 điều khiển tín hiệuyêu cầu ngắt và việc bảng vector ngắt thay thế
SVTH: ĐẶNG MINH TÂM
Trang 23
Trang 25
Các nguồn ngắt có thể được người sử dụng sắp xếp mức ưu tiên từ 1 đến
7 thông qua thanh ghi IPCx Mỗi nguồn ngắt được kết hợp với một vector ngắt
Hình 2.17 Các vector bẫy lỗi
2.1.8 Bộ chuyển đổi tương tự số ADC
Vi điều khiển dsPic30F4013 cung cấp bộ chuyển đổi tương tự số12-bit cho phép biến đổi tín hiệu tương tự đầu vào sang số độ dài 12-bit Module này dựatrên thanh ghi SAR (Successive Approximation Register – thanh ghi xấp xỉ)
và cung cấp tốc độ lấy mẫu tối đa lên tới 100 ksps ADC của dsPic30F4013 cótới 13 kênh tương tự lối vào được kết hợp cả lấy mẫu và giữ mẫu Lối ra của
bộ lấy và giữ mẫu là lối vào của bộ chuyển đổi - tạo ra kết quả biến đổi Điện thế tương tự chuẩn có thể là điện thế nguồn cung cấp (AVDD/AVSS) hoặc mức điện thế của các chânVREF+/VREF-
Bộ biến đổi ADC của dsPIC bao gồm 6 thanh ghi:
- Ba thanh ghi điều khiển A/D: ADCON1, ADCON2, ADCON3 điều khiển hoạt động của ADC
SVTH: ĐẶNG MINH TÂM
Trang 24
Trang 26
- Thanh ghi lựa chọn lối vào ADCHS: lựa chọn kênh vào để biến đổi
- Thanh ghi cấu hình cổng ADPCFG: cấu hình cổng trở thành lối vào tương tự hoặc vào ra số
- Thanh ghi lựa chọn quét
Module ADC sử dụng RAM để làm bộ đệm lưu kết quả biến đổi A/D
Có tất cả16 vị trí trong RAM được sử dụng để làm việc này, đó là: ADCBUF0, ADCBUF1, ADCBUF2, , ADCBUFE, ADCBUFF RAM chỉ có độ rộng 12-bit nhưng dữ liệu chứa trong nó lại là một trong bốn dạng số16-bit đó là: nguyên, nguyên có dấu, phân số, và phân
số có dấu
a) Thiết lập cấu hình cho module A/D
- Cấu hình các chân là lối vào tương tự, điện thế chuẩn và vào ra số
- Chọn các kênh lối vào cần biến đổi
- Chọn xung nhịp cho biến đổi
- Cho phếp module ADC có thể hoạt động
b) Cấu hình cho ngắt ADC nếu cần
- Xóa cờngắt ADIF
- Lựa chọn mức ưu tiên ngắt cho biến đổi A/D
c) Bắt đầu lấy mẫu
d) Đợi đủthời gian cần thiết để hoàn thành
e) Kết thúc lấy mẫu bắt đầu biến đổi
f) Đợi biến đổi kết thúc bởi một trong hai điều kiện sau:
- Đợi ngắt từADC
- Đợi bit DONE được set
- Đọc kết quả từ bộ đệm biến đổi A/D và xóa bit ADIF nếu cần
SVTH: ĐẶNG MINH TÂM
Trang 25
Trang 27
2.2 THUẬT TOÁN PID
2.2.1 PID liên tục
Tên gọi PID là chữ viết tắt của ba thành phần cơ bản có trong bộ điềukhiển (hình 3.1): khuếch đại tỷ lệ (P), tích phân (I), và vi phân (D) Bộ điềukhiển PID được ví như một tập thể hoàn hảo gồm ba cá nhân với ba tính cáchkhác nhau:
- Phục tùng và thực hiện chính xác nhiệm vụ được giao (tỷ lệ)
- Làm việc và có tích lũy kinh nghiệm để thực hiện tốt nhiệm vụ được giao(tích phân)
- Luôn có sáng kiến và phản ứng nhanh nhạy với sự thay đổi trong quá trìnhthực hiện nhiệm vụ (vi phân)
Hình 2.18 Sơ đồ khối của một bộ điều chỉnh PID
Bộ điều khiển PID được thực hiện khá rộng rãi để điều khiển đối tượngSISO (một vào, một ra) theo nguyên lý hồi tiếp (hình 2.18) Lý do bộ điềukhiển PID được sử dụng rộng rãi là vì tính đơn giản của nó cả về cấu trúc lẫnnguyên lý làm việc Bộ điều khiển PID có nhiệm vụ đưa sai lệch e(t) của hệthống về 0 sao cho quá trình quá độ thỏa mãn các yêu cầu cơ bản về chấtlượng Nguyên lý làm việc của bộ điều khiển PID được mô tả một cách địnhtính như sau:
SVTH: ĐẶNG MINH TÂM
Trang 26
Trang 28
Hình 2.19 Mô hình hệ thống điều khiển với bộ PID
Điều chỉnh tỷ lệ là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh tỷ
lệ với sai lệch đầu vào
Khâu điều chỉnh PD là trường hợp riêng của khâu hiệu chỉnh sớm pha,
Hình 2.20 Khâu điều chỉnh vi phân tỷ lệ PD
Khâu điều chỉnh PD làm giảm độ vọt lố, đáp ứng ra bớt nhấp nhô, làmnhanh đáp ứng của hệ thống, nhưng cũng làm cho hệ thống rất nhạy vớinhiễu tần số cao
SVTH: ĐẶNG MINH TÂM
Trang 27
Trang 29
Khâu điều chỉnh tích phân tỷ lệ PI (Proportional Integral Controller)
Khâu tích phân tỷ lệ PI có mặt trong hệ thống sẽ dẫn đến sai lệch tĩnhtriệt tiêu (hệ vô sai) Muốn tăng độ chính xác của hệ thống ta phải tăng
hệ số khuếch đại, song với mọi hệ thống thực đều bị hạn chế và sự cómặt của khâu PI là bắt buộc
Hình 2.21 Khâu điều chỉnh tích phân tỷ lệ PI
Controller)
Khâu điều chỉnh PID kết hợp những ưu điểm của khâu PD và PI, cókhả năng tăng độ dự trữ pha ở tần số cắt, khử chậm pha Sự có mặt củakhâu PID ở vòng hồi tiếp có thể dẫn đến sự dao động trong hệ do đápứng quá độ bị vọt lố bởi hàm dirac δ(t)
Trang 30Hình 2.22 Khâu điều chỉnh vi tích phân tỷ lệ PID.
thống có được chất lượng như mong muốn thì phải phân tích đối tượng
PID Dưới đây là một số những phương pháp thường được sử dụng:
- Phương pháp của Ziegler – Nichols
- Phương pháp tối ưu mô đun, phương pháp tối ưu đối xứng
Trang 31Cách 2: Đây là phương pháp em áp dụng vào đề tài
Theo phương pháp hình thang, ta có biến đổi z như sau:
K z
z T K K
z
p
1 1
1 2
`Viết lại G(z) ta có:
2 1
1
222
K z T
K T K K T
K T K K
z
G
d d
i p d
i p
Đặt:
T
K T K K
p
2 2
1 1 0
G
k
2 2
1 1 0
2.2.3 Tìm thông số cho bộ điều khiển PID
- Dựa vào đáp ứng quá độ của hệ hở
- Dựa vào đáp ứng quá độ của hệ kín
vào đáp ứng hệ hở:
SVTH: ĐẶNG MINH TÂM
Trang 30
Trang 32
Hình 2.23 Đáp ứng nấc của hệ hở
, Knhư hình trên
- Thông số của bộ điều khiển PID được chọn như sau:
2.3 THUẬT TOÁN ON/OFF
Phương pháp điều khiển ON/OFF còn được gọi là phương pháp đóng ngắt haydùng khâu relay có trễ
SVTH: ĐẶNG MINH TÂM
Trang 31
Trang 33
Hình 2.24 Sơ đồ khối điều khiển ON/OFF.
Trong đó:
e = Trị đặt – Trị đo
- Trường hợp không có khâu rơ le có trễ:
Nếu sai số lớn hơn không tức là giá trị đặt lớn hơn giá trị đo, lúc này bộphận chấp hành sẽ đóng nguồn để cung cấp năng lượng ở mức tối đacho đối tượng Ngược lại bộ phận chấp hành sẽ ngắt nguồn để khôngcung cấp năng lượng cho đối tượng
- Trường hợp có khâu rơ le có trễ:
Khâu rơle có trễ dùng để hạn chế tần số đóng ngắt, lúc này nguồn chỉđóng khi sai số e > +∆ và ngắt khi sai số e < -∆ Như vậy trị đo sẽ daođộng quanh trị đặt và 2 ∆ được gọi là vùng trễ của rơ le
Trang 34Đặc trưng của lò nhiệt là khâu quán tính nhiệt Từ khi bắt đầu cung cấpnăng lượng đầu vào cho lò nhiệt, nhiệt độ của lò tăng lên từ từ Để nhiệt độcủa lò đạt tới giá trị nhiệt độ yêu cầu thì phải mất thời gian khá dài Đây chính
là đặc tính quán tính của lò nhiệt
Khi tuyến tính hóa mô hình lò nhiệt, ta xem hàm truyền của lò nhiệtnhư là khâu tuyến tính bậc hai hoặc như là 1 khâu quán tính bậc nhất nối tiếpvới 1 khâu trễ
Trong đồ án này em xem mô hình lò nhiệt như là 1 khâu quán tính bậchai
2.4.2 Hàm truyền lò nhiệt và mô hình của Ziegler - Nichols
Hình 2.26 Xác định thông số của lò nhiệt theo Ziegler-Nichols
- Theo Ziegler-Nichols thì mô hình lò nhiệt có thể được biễu diễn dướidạng hàm truyền sau:
- Hàm truyền này bao gồm 1 khâu quán tính hệ số khuếch đại K và thờihằng T, và khâu trễ thời gian L, các thông số này có thể được lấy khi kẻtiếp tuyến ở điểm uốn cho đồ thị quá độ của hàm nấc như hình bên
- Hệ số khuếch đại K được tính như sau:
SVTH: ĐẶNG MINH TÂM
Trang 33
Trang 35
Khi nhiệt độ đầu khác không, K được tính từ độ tăng nhiệt độngõ ra so với môi trường.
Trang 361 1010
Trang 37Theo zigler – Nichols ta tính được Kp=1.2T1T*2K = 1212/8010 = 0.15
Tìm thông số bộ điều khiển PID 2:
Ki = Kp/Ti = Kp/2T1 = 0.0011
Kd = Kp*Td = Kp*0.5*T1 = 8.5
2.5.4 Kết luận:
- Với những thông số PID vừa tìm được bằng hệ hở ta kết hợp với PID thử sai
để tìm ra thông số tốt nhất để điều khiển ổn định 2 lò nhiệt
SVTH: ĐẶNG MINH TÂM
Trang 36
Trang 38
2.6 SƠ LƯỢC VISUAL BASIC 2005
2.6.1 Các thuộc tính của serialport:
Serial port.open(): mở com port
Serial port.close(): đóng com port
Serial port.write(): truyền dữ liệu sang cổng com
Serial port.readbyte(): đọc 1 byte từ vi điều khiển
Serial port.read existing(): đọc chuổi ký tự từ vi điều khiển
Cài đặt thuộc tính cho serial port:
Hình 2.31 Thuộc tính của serial port
Baudrate(tốc độ truyền):9600Databits: 8 bit dữ liệu
Parity: (none) không cóPortname: chọn cổng com