Đồ án này đã vận dụng logic mờ trong điều khiển nhiệt độ của lò ấp trứng gà.. Ta hoàn toàn có thể nhận thấy: nếu đặt các giá trị 0 và 1 vào các biểu thức trên ta sẽ nhận được các giá trị
Trang 1
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
Lớp : 46th2
Nha Trang, tháng 8 năm 2008
Trang 2Lời nói đầu:
Ngày nay cùng với sự phát triển không ngừng của khoa học công nghệ, công nghệ thông tin (CNTT) cũng đã có những bước tiến nhanh đến kinh ngạc và ngày càng trở nên phổ biến rộng rãi trong cuộc sống thường ngày Một trong số những
lĩnh vực quan trọng mà CNTT đóng vai trò then chốt đó là lĩnh vực điều khiển mờ
Trong khoảng 20 năm nay, lý thuyết tập mờ đã ra đời và phát triển rất nhanh chóng và đã đặt nền tảng cho một logic toán học mới: logic mờ (fuzzy logic) Logic
mờ tỏ ra rất phù hợp với những bài toán nảy sinh từ các hệ thống phức tạp trong thực tế đặc biệt là những suy luận giống như cách mà con người vẫn thường sử dụng
Đồ án này đã vận dụng logic mờ trong điều khiển nhiệt độ của lò ấp trứng gà Dựa vào những tri thức cung cấp bởi những tài liệu chuyên ngành chăn nuôi và kinh
nghiệm thực tế của những hộ chăn nuôi gà_tri thức chuyên gia_em đã xây dựng nên tập luật sử dụng trong hệ thống Với sự trợ giúp của phần cứng_phần điện tử_em đã
mô phỏng một cách cụ thể nguyên lý cũng như hoạt động thực tế của một bộ điều khiển mờ
Cuối cùng em xin chân thành cảm ơn thầy Bùi Đức Dương đã giúp đỡ em thực hiện đề tài này!
Do nhiều hạn chế, nhất là về thời gian và kinh phí nên đồ án còn nhiều khiếm khuyết Rất mong được sự góp ý của thầy cô để em có thể hoàn thiện hơn nữa đề tài này
Sinh viên thực hiện:
Bùi Quang Vinh
Trang 3Mục lục:
Lời nói đầu 2
Mục lục 3
Phần 1 : Tổng quan về logic mờ và điều khiển mờ… ……… 4
I.1 Tổng quan về logic mờ… ……… 4
I.1.1 Tập mờ……… … ……… 4
I.1.2 Logic mờ 4
I.2 Tổng quan về điều khiển mờ 5
I.2.1 Quá trình điều khiển với yếu tố mờ, không chắc chắn 5
I.2.2 Phương pháp điều khiển mờ……… .5
Phần 2 : Tổng quan về vi điều khiển AVR ATmega32 6
II.1 Sơ đồ nguyên lý kiến trúc AVR……… 6
II.2 Cấu trúc chân của ATmega32 7
Phần 3 : Xây dựng hệ thống điều khiển nhiệt trong lò ấp trứng gà…… 7
III.1 Xây dựng nguyên lý xử lý bài toán……… 7
III.1.1 Mờ hóa……… .8
III.1.2 Lập luận mờ……… 9
III.1.3 Giải mờ……… 10
III.2 Thiết kế phần cứng 10
III.2.2 Sơ đồ nguyên lý……… 10
III.2.2.1 Module ATmega32 10
III.2.2.2 Module RS232……… 11
III.2.3 Sơ đồ chi tiết………………… ……… 11
III.2.3.1 Module ATmega32……… ……… 11
III.2.3.2 Module RS232……… …… 12
III.2.3 3 Giới thiệu linh kiện……… … 13
III.3 Xây dựng phần mềm: III.1 Giới thiệu một số đoạn mã quan trọng trong chương trình… 13
IV/ Giới thiệu thiết bị và chương trình……… 14
IV.1 Giới thiêu thiết bị……… 14
IV.2 Giới thiệu chương trình……… 15
IV.3 Kết luận……… 16
Tài liệu than khảo……… 17
Trang 4CHƯƠNG 1
TỔNG QUAN VỀ LOGIC MỜ
VÀ ĐIỀU KHIỂN MỜ
Trang 51.1 Tổng quan về logic mờ :
1.1.1 Tập mờ :
Logic mờ được xây dựng dựa vào cơ sở giá trị gần đúng, giá trị này nằm trong khoảng giữa chân trị False và True Lý tuyết này được giáo sư Lotfi Zadef giới thiệu vào những năm 1960, nội dung của nó tương tự cách nói không chắc chắn trong ngôn ngữ thường ngày
- Theo ông, lý thuyết mờ không chỉ là một lý thuyết riêng lẻ mà chúng ta có thể dùng khái niệm fuzzy cho mọi lý thuyết khác từ các thuyết về khái niệm rời rạc đến liên tục
- Khái niệm logic mờ gắn bó chặc chẽ với khái niệm tập mờ
Tập rõ (crisp set) : một tập hợp A là tập rõ, một phần tử x có thể có x € A
hoặc x € A Để mô tả khái niệm thuộc về, ta có tể sử dụng hàm µ Nếu x € A thì
µA(x)=1, nếu x € A thì µA(x)=0
Ví dụ: A = tập hợp sinh viên của trường Đại Học Nha Trang
Tập mờ (fuzzy set): khác với tập rõ, khái niệm thuộc về được mở rộng để
phản ánh mức độ x là phần tử của A Đặc trưng cho tập mờ, người ta dùng hàm
thành viên_membership function_ µA
Ví dụ: A = tập hợp sinh viên giỏi tin của trường Đại Học Nha Trang
-Một tập con U của tập S có thể được định nghĩa như một ánh xạ từ những phần tử của S vào tập {0,1}
Phép ánh xạ này có thể được xem như một tập hợp mà các phần tử của nó là các cặp có thứ tự, mỗi cặp có thứ tự này tương ứng với mỗi một phần tử của tập S
Phần tử đầu tiên (x) của cặp này chính là một phần tử của S, phần tử thứ hai chính là
một phần tử của tập {0,1}
+) Giá trị 0 thể hiện ý nghĩa x không thuộc U
+) Giá trị 1 thể hiện ý nghĩa x thuộc U
-Tương tự như trên, một tập F là tập con của S được định nghĩa bằng phép ánh
xạ các phần tử của S vào tập {0,1} và hình thành các cặp số có thứ tự Phần tử đầu tiên của cặp số (x) là một phần tử trong S, phần tử thứ hai của cặp số (y) nằm trong khoảng [0,1] thể hiện mức độ x € F
Trang 6- Để tính toán phần tử thứ hai (y) của cặp số_thể hiện mức độ x € F_người ta
dùng hàm thành viên y= µF(x) Hàm này cho giá trị càng gần 1 khi mức độ x thuộc
F càng cao và ngược lại
-Tập S được gọi là tập vũ trụ của tập con F
Ví dụ: Cho tập vũ trụ U{ tập những người tham gia khảo sát} Hãy tìm tập TALL là tập những người cao
Ta được kết quả như sau:
Người Cao µTALL(x)
Từ bảng trên ta có mức độ phần tử Erik thuộc vào tập TALL là 0.42
Định nghĩa tập mờ (L.Zadeh _1965): A là tập mờ trên tập vũ trụ U được xác định bởi hàm:
µA là hàm thuộc hay hàm thành viên (membership function)
µA(x) là mức độ thuộc của phần tử x vào tập mờ A
Trang 71.1.2.a Các phép toán cơ bản của logic mờ :
Cho 3 tập mờ X,Y,Z với các hàm thành viên tương ứng µX(a), µY(a), µZ(a)
Z=X U Y : µZ(a)=Max(µX(a), µY(a))
Ta hoàn toàn có thể nhận thấy: nếu đặt các giá trị 0 và 1 vào các biểu thức trên
ta sẽ nhận được các giá trị giống như khi ta dùng luật logic thông thường, điều này chứng tỏ logic mờ không mâu thuẩn với logic truyền thống mà đó là sự mở rộng các tập luật khô cứng thành các luật mới uyển chuyển hơn
Vi dụ: -Cho tập mờ TALL (ví dụ trên)
-Cho tập mờ OLD(già) với hàm thành viên như sau:
old (x) = { 0 ; age(x) < 18 yr
(age(x)-18 yr.)/42 yr ; 18 yr <= age(x) <= 60 yr
Trang 81.1.2.b Biến ngôn ngữ (linguistics variable) :
Logic mờ liên quan đến lập luận trên các thuật ngữ mờ và mơ hồ trong ngôn
ngữ tự nhiên của con người
Biến nhận các từ trong ngôn ngữ tự nhiên làm giá trị gọi là biến ngôn ngữ
Biến ngôn ngữ được xác định bởi bộ bốn (x, T, U, M):
x là tên biến
T là tập các từ (các giá trị ngôn ngữ) mà x có thể nhận
U là miền giá trị mà x có thể nhận
M là luật ngữ nghĩa, ứng với mỗi từ t€T với một tập mờ A
Ví dụ: M=Phụ nữ tuổi trung niên thì sức khỏe yếu
x= biến ngôn ngữ ”tuổi, sức khỏe”
T= tập các từ “trung niên, yếu”
U=miền giá trị của “tuổi” là [0 150 năm]
1.2 Tổng quan về điều khiển mờ :
Những khái niệm trừu tượng của logic mờ đã được cụ thể hóa và ứng dụng
thông qua những sản phẩm thông dụng trong cuộc sống thường ngày như: nồi cơm
điện, máy giặt, lò vi sóng, tủ lạnh Sự phát triển nhanh chóng của ngành điều
khiển mờ ( fuzzy control) là do những yếu tố sau:
- Trên cơ sở suy luận mờ, nguyên lý điều khiển mờ đã cho phép con người tự
động hóa kinh nghiệm điều khiển của mình cho một quá trình, một thiết bị , tạo
được sự yên tâm cho họ như họ được chính tay điều khiển
- Bộ điều khiển có cấu trúc đơn giản hơn rất nhiều so với những bộ điều khiển
kinh điển khác có cùng chức năng
- Những cải tiến nhanh chóng của kỹ thuật vi xử lý đã làm một cầu nối không
thể thiếu giữa kết quả nghiên cứu lý thuyết và thực tế ứng dụng
1.2.1 Nguyên lý làm việc :
Bộ điều khiển mờ là một bộ điều khiển làm việc theo nguyên tắc tự động hóa
những kinh nghiệm điều khiển của con người Những kinh nghiệm này phải được
đúc kết lại thành luật hợp thành gồm nhiều mệnh đề hợp thành với cấu trúc chung:
if A=A i then B=B j
A, B là biến ngôn ngữ
Ai , Bj là giá trị
Trang 9- Mệnh đề hợp thành là nguyên tắc điều khiển được xây dựng từ những kinh nghiệm (hoặc ý kiến chuyên gia) trong thực tế Luật hợp thành là tập hợp các mệnh
đề hợp thành đó
- Mô hình tổng quát của hệ thống điều khiển mờ:
- Các nhóm bộ điều khiển :
+) Bộ điều khiển SISO: một đầu vào và một đầu ra
+) Bộ điều khiển SIMO: một đầu vào và nhiều đầu ra
+) Bộ điều khiển MISO: nhiều đầu vào và một đầu ra
+) Bộ điều khiển MIMO: nhiều đầu vào và một đầu ra
- Cấu trúc của một bộ điều khiển mờ: gồm có 3 khâu chính
+) Khâu mờ hóa: có nhiệm vụ chuyển đổi một giá trị rõ ở đầu vào u0 thành vector ui cho mệnh đề hợp thành thứ i
+) Khâu lập luận mờ: xử lý các vector ui và cho ra giá trị mờ R với hàm thuộc
µR(y) của biến ngôn ngữ đầu ra
+) Khâu giải mờ: chuyển đổi tập mờ µR(y) thành giá trị rõ y0 đầu ra cho đối tượng
Mô hình cấu trúc bộ điều khiển mờ:
Đối tượng điều khiển (Object)
Bộ điều khiển (Controller)
Trang 101.2.2 Quá trình điều khiển với yếu tố mờ, không chắc chắn :
Các phương pháp điều khiển truyền thống đòi hỏi người ta phải biết rõ bản chất của đối tượng cần điều khiển Tuy nhiên trong thực tế, ngoài các đối tượng cần điều khiển ra còn có rất nhiều đối tượng gây nhiễu khác do đó người thiết kế rất khó xác định các đặc trưng
Vì đối tượng điều khiển là một hệ phức tạp và không thể biểu thị bằng các mô hình toán nên người “chuyên gia” điều hành hệ thống chỉ có thể quan sát thông tin vào để phán đoán hành vi của hệ thống Nhận thức này được thâu tóm trong một tập
các mệnh đề if…then (hay các luật) với các biến vào và ra
Nói chung các phương pháp điều khiển mờ đều gắn chặc với lập luận mờ và gồm các đặc điểm sau:
Chỉ dựa vào thông tin vào ra quan sát được trên đối tượng cần điều khiển
Mô hình định tính dựa trên ngôn ngữ
Giảm độ phức tạp tính toán nhờ mô hình định tính
Miền ứng dụng rộng lớn đa dạng
1.2.3 Các phương pháp điều khiển mờ thông dụng :
a) Phương pháp xây dựng bộ điều khiển mờ dựa trên luật :
Ý tưởng của phương pháp này được đề xuất vào năm 1975 chủ yếu dựa vào việc xây dựng một cách thức lập luận mờ và lượng hóa các khái niệm mờ phù hợp
Đặc trưng của phương pháp này là tập hợp các luật (tri thức) được xây dựng
dựa vào tri thức của các chuyên gia, tức là tập luật là sự mô phỏng các tình huống đáp ứng của các chuyên gia trong quá trình thao tác điều khiển
Phương pháp này có ưu điểm này là đơn giản, nhưng cũng có các nhược điểm
như độ thích nghi kém, khó phát biểu tri thức chuyên gia dưới dạng luật
b) Phương pháp xây dựng bộ điều khiển mờ dựa trên mô hình :
Nội dung của phương pháp này như sau:
- Xây dựng mô hình quan hệ mờ dựa trên quan sát input/output
- Xây dựng thuật toán cho phép bộ điều khiển lựa chọn thao tác điều hành tốt nhất
- Có thể sử dụng mô hình tự học hay các mô hình lai giữa mô hình mờ và mô hình toán học
Trang 11- Ưu điểm: rất trực quan và dễ quan sát, giúp người thiết kế hệ thống dễ dàng nắm bắt các cấu trúc và thành phần cua bộ điều khiển
c) Phương pháp xây dựng bộ điều khiển thông minh dựa trên tri thức và logic mờ:
Trong thực tế điều khiển người ta thường gặp những môi trường không thể thu được các dữ liệu chính xác, không mô tả được cụ thể trạng thái trong những trường hợp như vậy cần phải xây dựng các bộ điều khiển thông minh
Đặc điểm của phương pháp như sau :
- Có khả năng sử dụng nhiều giải thuật điều khiển khác nhau, đánh giá được chiến lược điều khiển nào thích ứng nhất Việc đánh giá này dựa vào kỹ thuật tập
mờ và logic mờ
- Có khả năng đánh giá và duy trì trạng thái gần tối ưu và đảm bảo độ tin cậy, ngay cả khi một vài yếu tố của thiết bị điều khiển bị hỏng nó cũng có thể cấu hình lại giải thuật đó hay chuyển sang một giải thuật khác thích ứng hơn
- Có một cơ sở tri thức và kinh nghiệm đối với quá trình điều khiển cùng với những kiến thức dạng luật mà các giải thuật sẽ sử dụng trong quá trình điều khiển
Trang 12CHƯƠNG 2
TỔNG QUAN VỀ VI ĐIỀU KHIỂN
AVR ATEMEGA
Trang 13Vi điều khiển AVR thuộc họ vi điều khiển Atmel, nó là họ vi điều khiển mới trên thị trường cũng như đối với người sử dụng Ngoài các tính năng như các họ VĐK khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language) để lập trình ngay cả với loại chip xử lí 8 bit trong đó ngôn ngữ C
là ngôn ngữ phổ biến nhất
2.1 Phân loại AVR và các đặc điểm chính:
- Phân loại AVR:
+) AT90S8535: Không có lệnh nhân hoặc chia trên thanh ghi
+) ATMEGA 8, 16, 32 (AVR loại 8 bit, 16 bit, 32 bit): Là loại AVR tốc độ cao, tích hợp sẵn ADC 10 bit
+) AVR tích hợp sẵn LCD driver : Atmega169, 329
+) AVR có tích hợp SC (Stage Controller): AT90PWM thường dùng trong các ứng dụng điều khiển động cơ hay chiếu sáng nên còn gọi là lighting AVR
+) Attiny11, 12, 15: AVR loại nhỏ
- Đặc điểm chính:
+) Kiến trúc RISC(Cã nghÜa lµ m¸y tÝnh dïng tËp lÖnh rót gän, bé vi xö lý kiÓu nµy thùc hiÖn Ýt lÖnh h¬n nh÷ng bé vi xö lý kh¸c) với hầu hết các lệnh có chiều dài
cố định, truy nhập bộ nhớ nạp – lưu trữ và 32 thanh ghi đa năng
+) Có nhiều bộ phận ngoại vi ngay trên chip, bao gồm: Cổng vào/ra số, bộ biến đổi ADC, bộ nhớ EEFROM, bộ định thời, bộ điều chế độ rộng xung (PWM), +) Hầu hết các lệnh đều thực hiện trong một chu kỳ xung nhịp
+) Hoạt động với chu kỳ xung nhịp cao, có thể lên đến 20 MHz tuỳ thuộc từng loại chip cụ thể
+) Bộ nhớ chương trình vµ bộ nhớ dữ liệu được tích hợp ngay trên chip
+) Khả năng lập trình được trong hệ thống, có thể lập trình được ngay khi đang
được cấp nguồn trên bản mạch không cần phải nhấc chip ra khỏi bản mạch
+) Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao – ngôn ngữ C
- Cốt lõi của AVR là sự kết hợp tập lệnh đầy đủ với các thanh ghi đa năng 32 bit Tất cả các thanh ghi 32 bit này liên kết trực tiếp với khối xử lý số học và logic (ALU) cho phép 2 thanh ghi độc lập được truy cập trong một lệnh đơn trong 1 chu
Trang 14kỳ đồng hồ Kết quả là tốc độ nhanh gấp 10 lần các bộ vi điều khiển CISC(Complex Instruction Set Computer : máy tính với tập lệnh phức tạp) Một loại kiến trúc của
bộ xử lí được đặc trưng bởi tính chất là các lệnh có độ dài khác nhau (không cố định) , thường là một số nhỏ các chế độ đa địa chỉ và thanh ghi)
- Với các tính năng đã nêu, chế độ nghỉ (Idle) CPU trong khi cho phép bộ truyền tin nối tiếp đồng bộ USART, giao tiếp 2 dây, chuyển đổi A/D, SRAM, bộ đếm, bộ định thời, cổng SPI và hệ thống các ngắt vẫn hoạt động Chế độ Power-down lưu giữ nội dung của các thanh ghi nhưng làm đông lạnh bộ tạo dao động, thoát khỏi các chức năng của chip cho đến khi có ngắt ngoài hoặc là reset phần cứng Chế độ Power-save đồng hồ đồng bộ tiếp tục chạy cho phép chương trình sử dụng giữ được đồng bộ thời gian nhưng các thiết bị còn lại là ngủ
- Để tối đa hoá hiệu năng tính năng và song song, AVR sử dụng kiến trúc với
bộ nhớ riêng biệt và các BUS cho chương trình và dữ liệu Các câu lệnh trong bộ nhớ chương trình được hoạt với một đường ống lệnh mức đơn Trong khi một lênh đang thực hiện, lệnh tiếp theo sẽ được nạp trước vào từ bộ nhớ chương trình Điều này làm cho các lệnh được thực hiện trong mọi chu kỳ đồng hồ Bộ nhớ chương
trình là bộ nhớ In-System Reprogrammable Flash
- Flash memory : Bé nhí flash, lµ mét lo¹i bé nhí sử dụng các chíp NAND (tích hợp nhiều transitor lên một tấm bán dẫn), các chíp này có kích thước nhỏ, tốc
độ đọc/ghi cao, dung lượng lớn
- AVR cung cấp 1 vài nguồn ngắt khác nhau Các ngắt này và vector reset riêng biệt có vector chương trình riêng biệt nằm trong không gian nhớ chương trình Tất cả các ngắt được chỉ định bởi các bit cho phép riêng biệt mà các bit này phải được ghi mức logic 1 cùng với bit cho phép ngắt toàn cục trong thanh ghi trạng thái
để cho phép ngắt Phụ thuộc vào giá trị PC, các ngắt này phải được tự động loại bỏ khi các bit Boot Lock - BLB02 or BLB12 - được lập trình Yếu tố này cải thiện độ
an toàn phần mềm
Trang 152.2 Sơ đồ nguyên lý kiến trúc AVR :
- Sơ đồ cấu trúc AVR :
Các thành phần cơ bản:
- ALU : Đơn vị xử lý số học và logic Các toán tử của ALU được chia làm 3
loại chính: Số học, logic, và xử lý bit Một số phép xử lý của kiến trúc này cũng cung cấp bộ nhân số có dấu và không có dấu và dạng phân số
- Data SRAM : Bộ nhớ dữ liệu
- EEPROM : Lµ lo¹i ROM cã thÓ xo¸ ®îc bằng điện sau đó ghi lại mà không cần lấy ra
- DATA BUS – 8Bit : §êng truyÒn d÷ liÖu 8Bit
- I/O Lines : §êng vµo ra tÝn hiÖu
- 32 x 8 Gneral Purpose Registers : 32 thanh ghi ®a n¨ng 8 Bit
- Status and control : Khèi nhËn biÕt tr¹ng th¸i vµ ®iÒu khiÓn
Trang 16- Program counter : Bộ đếm chương trình
- Flash program memory : Bộ nhớ flash, tốc độ đọc/ghi cao, dung lượng lớn
- Intruction register/ decoder : thanh ghi lệnh
- IntErrupt unit: Bộ xử lý ngắt
- SPIunit: (Serial Peripheral Interface) mạch ghộp nối ngoại vi nối tiếp, là mạch liên kết dữ liệu nối tiếp đồng bộ cho phộp bộ điều khiển truyền thụng với cỏc thiết bị ngoại vi
- Watchdog timer : là một bộ đếm cú chức năng reset lại vi điều khiển khi xảy ra sự kiện tràn (overflow)
- Analog comparator: bộ so sánh tớn hiệu tương tự I/O module1 -> I/O module
n cỏc module vào ra tớn hiệu
- Status register: Thanh ghi trạng thỏi chứa thụng tin về kết quả thưc hiện của hầu hết cỏc lệnh số học Cỏc thụng tin này cú thể được sử dụng để điều khiển chương trỡnh Chỳ ý rằng cỏc thanh ghi trạng thỏi được cập nhật sau tất cả cỏc hoạt động của ALU Trong nhiều trường hợp, điều này sẽ bỏ đi những cần thiết khi sử dụng cõu lệnh so sỏnh chuyờn dụng, kết quả nhanh hơn và đoạn chương trỡnh ngắn gọn hơn
- I/O module1 -> I/O module n: Module vào ra tín hiệu
- Direct / Indirect addressing: Đường địa chỉ truyền trực tiếp / giỏn tiếp
- Stack Pointer : Stack thường được sử dụng để chứa dữ liệu tạm thời, cho việc lưu trữ cỏc biến địa phương và cho việc lưu trữ địa chỉ trở về sau khi gọi cỏc thường trỡnh và cỏc ngắt Thanh ghi con trỏ thường trỏ tới đỉnh của stack Chỳ ý rằng stack được thực hiện khi tăng thờm từ địa chỉ cao đến địa chỉ thấp, điều này núi lờn rằng khi thực hiện lệnh PUSH thỡ con trỏ sẽ tự động giảm Con trỏ trỏ đến vựng ngăn xếp
dữ liệu SRAM
- Khụng gian ngăn xếp trong SRAM phải được định nghĩa bằng chương trỡnh trước khi bất cứ thường trỡnh hoặc ngắt được thực hiện Con trỏ ngăn xếp phải được set để trỏ tới địa chỉ trờn $0100 Con trỏ ngăn xếp được giảm đi 1 khi dữ liệu được cất vào ngăn xếp và được giảm đi 2 khi cất địa chỉ trở về của thường trỡnh hoặc ngắt SP được tăng lờn khi dữ liệu được lấy ra
Trang 172.3 Cấu trỳc AVR ATmega16L :
Vi xử lý được chọn sử dụng trong đồ ỏn này là AVR Atemega16L Với những tớnh năng rất tiện dụng cho lập trỡnh và điều khiển, AVR Atemega16L đó được rất nhiều kỹ thuật viờn tin học, chuyờn viờn cơ-điện tử, sử dụng Sau đõy là vài chi tiết quan trọng của nú
2.3.1 Cấu trỳc chõn AVR Atemega16L :
- Điện áp hoạt động : từ 2.7 đến 5.5VDC
- VCC : Cấp nguồn dương
- GND : Nối đất
- AVCC : Là chân cấp điện cho cổng A(Port A ) và bộ biến đổi A/D
- AREF : Là chân tín hiệu tham chiếu Analog ( tương tự ) nối vào bộ biến đổi A/D
- PORT B : Từ PB7 đến PB0 là cổng I/O 8-bit hai chiều với các điện trở Pull-up bên trong
- PORT C : Port C từ PC0 đến PC7 là cổng I/O 7-bit hai chiều với các điện trở Pull-up bên trong (dược lựa chọn cho mỗi bit)
- PORT D : Port D từ PD0 đến PD7 là cổng I/O 8-bit hai chiềuvới các điện trở Pull-Up bên trong (được lựa chọn cho mỗi bit
Trang 18- PORT A : Đầu ra của bộ biến đổi A/D
- XTAL1 & XTAL2 : Chân vào ra của thạch anh tạo dao động
2.3.2 Một số đặc điểm kỹ thuật quan trọng của AVR Atemega16L:
- Hiệu năng cao, tiờu thụ năng lượng ớt
- Kiến trỳc RISC - Reduce Instruction Set Computer (Có nghĩa là máy tính dùng tập lệnh rút gọn, bộ vi xử lý kiểu này thực hiện ít lệnh hơn những bộ vi xử lý khác)
- 131 cõu lệnh, hầu hết cỏc lệnh thực hiện trong một chu kỳ
- 32 thanh ghi 8-bit đa năng
- Tốc độc thực hiện lờn tới 16 triệu lệnh trong 1 giõy với tần số 16MHz
- Cú 2 bộ nhõn, mỗi bộ thực hiện trong thời gian 2 chu kỳ
- Cỏc bộ nhớ chương trỡnh và dữ liệu cố định
- 16 Kb bộ nhớ Flash cú khả năng tự lập trỡnh trong hệ thống
- Cú thể thực hiện được 10.000 lần ghi/xoỏ
- Vựng mó Boot tuỳ chọn với những bit khoỏ độc lập
- Lập trỡnh trờn trong hệ thống bởi chương trỡnh on-chip Boot
- Thao tỏc đọc trong khi ghi thực sự
- 512 bytes EEFROM.cú thể thực hiện 100.000 lần ghi /xoỏ
- Lập trỡnh Khoỏ an ninh phần mềm: giao diện nối tiếp đồng bộ ( chuẩn IEEE std.1149.1).Khi thực hiện trao đổi dữ liệu với các thiết bị tương thích thì khung dữ liệu 8Bit giữa 2 thiết bị được truyền đồng bộ (cùng xung nhịp đồng hồ)
- Lập trình bộ nhớ Flash, EEPROM, ngắt, khoá Bit thông qua giao diện JTAG
- 4 kờnh PWM, 8 kờnh ADC 10 bit
- Giao điện nối tiếp 2 dõy hướng tới byte
- Bộ truyền tin nối tiếp USART khả trỡnh
- Power-on Reset và dũ Brown-out khả trỡnh
- Bộ tạo dao động được định cỡ bờn trong
- Cỏc nguồn ngắt bờn trong và bờn ngoài
- 32 đường I/O khả trỡnh
- Chế độ năng lượng thấp: <1 A khi điện ỏp 2.7V
Atmega16L AVR được hỗ trợ bởi bộ chương trỡnh đầy đủ và cỏc tool(tiện ích)
để phỏt triển hệ thống, bỏo gồm: bộ biờn dịch C, macro assemblers, program
Trang 19debugger/simulators(chương trình mô phỏng), in-circuit emulators (mạch mô phỏng) và evaluation kits(kit phát triển)
- Memories – bộ nhớ của ATMEGA16L :
+) Kiến trỳc AVR cú 2 khụng gian bộ nhớ chớnh bao gồm bộ nhớ chương trỡnh
và bộ nhớ dữ liệu Thờm vào đú, Atmega16L cú một bộ nhớ EEPROM để lưu trữ
dữ liệu Tất cả 3 khụng gian này là tuyến tớnh và như thường lệ
+) Atmega16L chứa 16K bytes bộ nhớ Flash cú thể lập trỡnh lại được nằm trong chip để chứa chương trỡnh Từ khi tất cả cỏc lệnh của AVR là 16 hoặc 32 bit
thỡ Flash được tổ chức thành 8Kx16 Vỡ lý do an toàn phần mềm nờn bộ nhớ chương
trỡnh Flash được chia thành 2 vựng: Vựng nạp chương trỡnh boot(chương trình khởi
Trang 20CHƯƠNG 3
XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN
NHIỆT ĐỘ TRONG LÒ ẤP TRỨNG GÀ
Trang 213.1 Xây dựng nguyên lý xử lý bài toán :
Vấn đề đặt ra trong đồ án này như sau: không phụ thuộc vào nhiệt độ môi
trường trong thời điểm hiện tại cũng như sự biến đổi nhiệt độ của các đối tượng khác trong lò ấp, ta phải điều chỉnh cường độ quạt và cường độ sáng của đèn sao cho nhiệt độ trong lò ấp luôn trong ổn định trong khoảng 35-36 0 C
Mô hình xử lý của bài toán :
Dựa vào kinh nghiệm thực tế, ta có thể điều chỉnh nhiệt độ trong lò ấp bằng cách điều khiển hai đối tượng quạt và đèn tương ứng hai vấn đề cần giải quyết song song là làm mát và làm ấm như sau:
- Vấn đề làm mát:
+) Nếu nhiệt độ là thấp thì không quạt
+) Nếu nhiệt độ là vừa thì không quạt
+) Nếu nhiệt độ là hơi nóng thì quạt ít
+) Nếu nhiệt độ là nóng thì quạt vừa
+) Nếu nhiệt độ là rất nóng thì quạt lâu
- Vấn đề làm ấm:
+) Nếu nhiệt độ là cao thì không sáng
+) Nếu nhiệt độ là vừa thì không sáng
+) Nếu nhiệt độ là hơi lạnh thì sáng ít
+) Nếu nhiệt độ là lạnh thì sáng vừa
Trang 22Như vậy, bộ điều khiển làm việc theo nguyên tắc tự động hóa những kinh nghiệm điều khiển của con người Bộ điều khiển dùng trong đồ án này gồm hai bộ điều khiển theo kiểu SISO (Single Input, Single Output) dùng để điều khiển hai đối tượng là quạt và đèn Nói cách khác ta sẽ tổ chức hai bộ điều khiển ảo SISO trên cùng một tài nguyên vật lý để điều khiển hai đối tượng trên theo kinh nghiệm của những chuyên gia trong lĩnh vực này
Sau đây chúng ta sẽ lần lượt đi vào từng khâu xử lý
3.1.1 Mờ hóa :
Nhiệm vụ của khâu này là chuyển đổi giá trị rõ input thành vectơ µi.Ta sẽ lần lượt tiến hành mờ hóa cho từng đối tượng quạt và đèn tương ứng hai vấn đề đặt ra ban đầu là làm mát và làm ấm Khâu này được xem là khó nhất trong tất cả các khâu của quá trình xử lý
Đối tượng quạt:
- Xác định các biến ngôn ngữ:
+)Với biến ngôn ngữ nhiệt độ ta có các tập mờ thấp, vừa , hơi nóng, nóng, rất
nóng Tương ứng một giá trị input (t) với lần lượt các tập mờ trên ta có các hàm
sau: µthấp(t), µvừa(t), µhoinong(t), µnóng(t), µrấtnóng(t)
+)Với biến ngôn ngữ kết luận xác định cường độ quạt ta có các tập mờ: không quạt,
quạt tnhẹ, quạt vừa, quạt mạnh Tương ứng một giá trị output (v) với lần lượt các
tập mờ trên ta có các hàm sau:µk.quạt(v), µq.ít(v), µq.vừa(v), µq.lâu(v)
Dựa vào kinh nghiệm của những người chăn nuôi gà lâu năm, các số liệu cụ thể đã được thu nhận để sử dụng trong việc xây dựng các hàm thành viên
- Ta xây dựng các hàm thành viên cho các tập mờ mát, vừa , hơi nóng, nóng,
Trang 23(v-20)/70; 20< v <90 (v-50)/100; 50<v<150
(200-v)/51;149<v<200 (255-v)/56; 199<v<255 } }
Trang 24
+)Với biến ngôn ngữ nhiệt độ ta có các tập mờ cao, vừa, hơi lạnh, lạnh,
rất lạnh Tương ứng một giá trị input(tc) với lần lượt các tập mờ trên ta có các hàm
sau: µcao(tc), µvừa(tc), µhơilạnh(tc), µlạnh(tc), µrấtlạnh(tc)
+)Với biến ngôn ngữ kết luận xác định cường độ sáng ta có các tập mờ: không
sáng, sáng ít, sáng vừa, sáng mạnh Tương ứng một giá trị output(a) với lần lượt
các tập mờ trên ta có các hàm sau:µk.sáng(a), µs.ít(a), µs.vừa(a), µs.mạnh(a)
- Ta xây dựng các hàm thành viên cho các tập mờ cao, vừa, hơi lạnh, lạnh, rất
lạnh (đơn vị tính bằng 0C):
µcao(tc) { 0 ; tc <=24 µvừa(tc) {0; tc<=17
1; tc>=37 0; tc>=40
(tc-24)/13; 16<tc<25 1; 35<= tc <=36 (tc-17)/18; 17< tc <35 ( 40-tc)/4; 36< tc < 40
} }
Trang 25µk.sáng(a){ 1; a=0 µs.nhẹ(a) {0; a< = 0 µs.vừa(a){ 0; a<=50
0; a≠0 0; a>=200 0; a=255
} } 1; 90<= t<=149 1; 150<=a<=199
(a-20)/70; 0< a <5 (a-50)/100; 50<a<150
(200-a)/51;35<a<30 (255-a)/56; 199<a<255 } }
Trang 26Đến đây chúng ta đã hoàn thành khâu đầu tiên_mờ hóa và cũng là khâu khó
nhất trong quá trình xử lý của bộ điều khiển Sau đây chúng ta tiếp tục đến với hai khâu còn lại là lập luận mờ và giải mờ
Trang 27Đến đây chúng ta đã hoàn thành khâu thứ hai của quá trình xử lý_lập luận mờ,
việc xây dựng các tập luật và thuật toán xác định giá trị mờ của luật hợp thành đã
hoàn tất Tiếp đến ta đến với khâu cuối cùng: giải mờ
Trang 283.1.3 Giải mờ :
Nhiệm vụ của khâu này là chuyển đổi tập mờ µR(y) thành giá trị rõ y0 đầu ra
cho các đối tượng Phương pháp khử mờ được chọn lựa là phương pháp lấy điểm
Áp dụng cho đối tượng quạt ta có:
Trang 29Áp dụng cho từng luật trong vấn đề làm mát với:
Im= (H/2) * (2*m2 - 2*m1 + a + b )
Jm= (H/6) * (3*m22 – 3*m12 + b2 – a2 +3*m2*b+3*m1*a )
Kết quả rõ ở đầu ra sẽ là: v0 = Jm/Im (đv)
Áp dụng cho đối tượng đèn ta có:
Kết quả rõ ở đầu ra sẽ là: a0 = Jm’/Im’ (đv)
Trên đã trình bày xong các khâu xử lý bái toán về mặt nguyên lý của bộ điều khiển Đến đây xem như đề tài đã hoàn thành cơ bản về mặt lý thuyết, các yếu tố liên quan đến nội dung các vấn đề cần giải quyết như tri thức chuyên gia, luật hợp thành, giải thuật cho xử lý của bộ điều khiển đã được xử lý và trình bày Tiếp theo chúng ta sẽ đến với nội dung rất quan trọng của đồ án là phần thiết kế và cài đặt trên thực tế
a 0 =
Trang 314.1 Thiết kế phần cứng :
Khái quát những tính năng của phần cứng:
- Hệ thống điều khiển trong đồ án thực hiện nội dung chủ yếu là điều khiển nhiệt độ tự động theo tư duy của logic mờ, tức phần cứng được dùng là một bộ điều khiển mờ thực sự với đầy đủ các thuộc tính, quá trình và đặc điểm của nó
- Bên cạnh đó hệ thống còn cho phép người sử dụng có thể trực tiếp điều khiển bằng tay các đối tượng quạt và đèn thông qua một giao diện trên máy tính với các nút bấm tương tự như việc điều khiển một chiếc máy quạt hay một chiếc đèn bàn
mà chúng ta đã rất quen thộc trogn cuộc sống thường ngày
- Trong tất cả các quá trình điều khiển, các thông số cụ thể về cường độ, nhiệt
độ, trạng thái hoạt động luôn được hiển thị trên LCD gắn trực tiếp trên mạch điện
đề người dùng có thể theo dõi sát tiến trình làm việc của thiết bị giúp họ an tâm hơn khi sử dụng
- Đối với những người quan tâm đến các chỉ số mờ, họ có thể quan sát chúng một cách dễ dàng thông qua một bảng thông số mờ được thiết kế trên máy tính Với những tính năng nói trên, yêu cầu quan trọng nhất của phần cứng là khả năng kết nối và trao đổi dữ liệu với máy tính Ngoài ra phần cứng còn phải điều chỉnh được tốc độ động cơ quạt và cường độ sáng của đèn
- Để thực hiện được điều này, tôi đã thiết kế hai module trên phần cứng:
+) Module ATmega: là module chính thực hiện các thao tác xử lý và điều khiển đối tượng
+) Module RS232: là module thực hiện việc giao tiếp, trao đổi dữ liệu giữa Module ATmega và máy tính
Sau đây là phần thiết kế về phần cứng nhằm đáp ứng các khả năngtrên cho hệ thống điều khiển
Trang 32
- Cảm biến nhiệt LM335 nhận nhiệt độ từ môi trường ngoài và liên tục cập nhật thông số này cho ATmega16L theo một chu kỳ được đặt sẵn Đây là loại cảm biến nhiệt tương đối chậm, do đó việc cảm ứng với nhiệt độ môi trường là chưa cao, tuy nhiên trong giới hạn của đề tài này chúng ta chưa quan tâm lắm đến chất lượng của cảm biến nhiệt
- Chip ATmega nhận tín hiệu từ cảm biến nhiệt, tại đây bộ chuyển đổi A/D(Analog-Digital) tích hợp sẵn trong Chip sẽ tiến hành chuyển đổi tín hiệu tương
tự thành tín hiệu số Sau khi thực hiện việc chuyển đổi Chip ATmega16L sẽ tiếp tục xử lý, một đường tín hiệu được đưa hiển thị trên LCD, một đường khác được đưa đến module RS232
- Module RS232 sẽ “chuyên chở ” dữ liệu qua lại giữa máy tính với module ATmega Thông số nhiệt độ sẽ được lên máy tính và các thông số kết quả xử lý từ máy tính cũng sẽ được trả về module ATmega
- Tất cả các việc trao đổi này được thực hiện thông qua các Port giao tiếp có sẵn trên ATmega16L Phần này sẽ được nói rõ hơn trong phần sau của bài báo cáo này
4.1.1.2 Module RS232 :
- Module RS232 làm nhiệm vụ truyền thông giữa máy tính và Chip AVR qua cổng COM của máy tính
- Sơ đồ nguyên lý của module RS232 :
Cảm biến nhiệt (LM335)
LCD
Trang 33COM PORT
- IC được dựng trong module RS232 là Max 232, đõy là IC được thiết kế chuyờn dựng cho việc truyền thụng giữa mỏy tớnh và cỏc thiết bị ngoại vi Kỹ thuật này được gọi là kỹ thuật truyền thụng nối tiếp
- Nhiệt độ và cỏc thụng số khỏc sẽ được đưa lờn mỏy tớnh thụng qua sự điều khiển của Max232 Giao diện kết nối giữa chỳng là cổng COM
- Giao tiếp giữa module RS232 và module ATmega được thực hiện thụng qua một PORT đó cú sẵn trờn ATmega16L
- Mối liờn hệ giữa cỏc thành phần trong sơ đồ trờn là mối liện hệ hai chiều Tức là giữa chỳng luụn cú sự trao đổi thụng tin qua lại lẫn nhau
4.1.2 Sơ đồ chi tiết :
4.1.2.1 Module ATmega32 :
- Cỏc Port được lấy ra lần lượt đưa vào cỏc khe cắm từ J1 đến J4
- Khe J được vẽ trớch ra từ cỏc chõn 7, 8, 9, 10 và cỏc chõn nguồn của Chip nhằm làm rừ đõy là nơi giao tiếp với mỏy tớnh qua cổng LPT để nạp chương trỡnh cho Chip
- Cỏc chõn nối với J4 là nơi giao tiếp với LCD
+) Sơ lược tác dụng các linh kiện :
+) LM335 cảm biến nhiệt độ từ môi trường bên ngoài để lấy tín hiệu nhiệt độ
đưa vào vi xử lý
+) LCD giải mã và hiển thị nhiệt độ và cỏc thụng khỏc
+) ATmega16L điều khiển hoạt động của thiết bị theo sự biến thiờn nhiệt độ mụi trường
+) Thạch anh tạo dao động cho ATMEGA16L
+) Led đỏ cảnh bỏo khi nhiệt độ tăng quỏ cao
+) Led xanh cảnh bỏo khi giảm nhiệt độ giảm xuống quỏ thấp
- Hỡnh ảnh phần chớnh của sơ đồ chi tiết module ATmega:
Max 232
Desktop
Module Atmega16L