Ứng dụng NeuroFuzzy trong điều khiển nhiệt độ trên vi điều khiển AT89C52

MỤC LỤC

GIỚI THIỆU ĐỀ TÀIGIỚI THIỆU ĐỀ TÀI

LOGIC MỜLOGIC MỜ

SƠ LƯỢC VỀ LOGIC MỜ

  • Quá trình phát triển của logic mờ
    • Cơ sở toán học của logic mờ

      Cơ bản là không có một nhà sản xuất điện tử giải trí nào của Mỹ có mặt trên thị trường thế giới; việc dùng logic mờ trong camcorder, camera, hifi chỉ là nhằm tăng thêm khả năng cạnh tranh giữa các công ty Nhật mà thôi. Và trong một phiên tòa, chánh án phải quyết định số ngày phạt tù của tên trộm dựa trên mức độ rượu trong người, trước đây có tiền án hay tiền sự không, … từ đó kết hợp lại đưa ra một quyết định công bằng.

      CÁC KHÁI NIỆM DÙNG TRONG LOGIC MỜ

        Không thể làm phép so sánh giữa hai lĩnh vực này bởi vì sự không chắc chắn theo thống kê và sự không chắc chắn theo ngữ vựng có bản chất khác nhau. Tập hợp mờ là sự tổng quỏt húa của tập hợp cổ điển, trong đú à = 0 và à = 1 của hàm phụ thuộc cổ điển chỉ là một trường hợp đặc biệt của hàm phụ thuộc trong tập hợp mờ.

        TÍNH TOÁN MỜ

        • Suy luận mờ

          Tính từng luật : xét riêng rẽ từng luật mờ, dựa trên độ phụ thuộc của các tập mờ đầu vào và liên từ kết hợp chúng để tạo ra độ phụ thuộc chung cho các đầu vào, và cũng là kết quả của riêng luật đó. Phương pháp trung bình theo trọng số (CoM – Center of Maximum) : là một biến dạng của phương pháp trọng tâm khi thay dấu tích phân bằng dấu sigma, được dùng nhằm đơn giản hóa sự tính toán, phù hợp với các điều khiển nhỏ.

          MẠNG NEURONMẠNG NEURON

          SƠ LƯỢC VỀ MẠNG NEURON

          • Cấu trúc của não

            - Mặc dù chưa hiểu cách mô tả các ý tưởng của bộ não nên chưa thể bắt chước hoàn toàn, nhưng ta có thể thấy rằng bộ não sử dụng những phần tử tính toán có tốc độ chậm nhưng được liên kết với nhau. Qua đó, bộ não là một cấu trúc có năng suất cao mặc dù neuron là phần tử tính toán rất chậm so với các cổng logic silicon : trong IC sự kiện xảy ra với tỷ lệ 10-10 giây trong khi sự kiện xảy ra treõn neuron theo tyỷ leọ 10-3 giaõy.

            Mễ HèNH HểA NEURON

              Trong trường những cổng này được mở thì các ion được nạp sẽ di chuyển vào dendrite và làm cho thế năng của dendrite thay đổi thông qua việc cung cấp một điện thế cho dendrite. Học hỏi trong hệ thống sinh vật được hiểu là sự thay đổi hóa học xảy ra ở điểm nối synapse giữa neuron này với neuron khác.

              HỌC HỎI TRONG MẠNG NEURON

              Như trong định nghĩa đã đề ra, việc học hỏi được dựa trên những kích thích bên ngoài nên trước khi cho mạng neuron hoạt động, ta cần phải có một tập dữ liệu để dạy cho nó. Do đó trong thực tế người ta phải thiết lập tiêu chuẩn dừng dựa trên một giá trị sai số nào đó của hai giá trị này, hay dựa trên một số lần lặp xác định.

              GIẢI THUẬT HỌC PERCEPTRON

                Mô hình perceptron chủ yếu để ta hiểu về cách học hỏi của mạng neuron chứ thực ra thì do nó quá đơn giản và sử dụng hàm truyền là hàm ngưỡng tuyến tính nên có mặt hạn chế của nó. Tuy nhiên, sau đó thì Rumelhart và McClelland đã đưa ra giải thuật truyền ngược sai lệch cho mạng neuron nhiều tầng (hay còn gọi là multi layer perceptron – MLP) có thể giải quyết bài toán XOR.

                Hình sau đây minh họa cho giải thuật học perceptron :
                Hình sau đây minh họa cho giải thuật học perceptron :

                GIẢI THUẬT HỌC DELTA

                  Xét một neuron sử dụng đầu ra là hàm tuyến tính, thế thì vector trọng số tìm được trong giải thuật học sẽ là một đường thẳng (trường hợp không gian hai. Do tính chất không tuyến tính của hàm truyền mà giải thuật khó có thể dừng đúng nghĩa (giá trị tạo ra bởi mạng neuron bằng đúng giá trị mong muốn hay sai lệch = 0). Do đó người ta thiết lập tiêu chuẩn dừng theo một giá trị sai lệch Emax cho phép nào đó : khi sai lệch E nhỏ hơn hoặc bằng Emax thì dừng. Trong thực tế người ta còn có một tiêu chuẩn dững theo số lần lặp : khi đạt đến một số lần lặp xác định thì dừng. Đầu ra của mạng neuron tính theo :. Bước 5 : tính sai lệch bằng cách cộng thêm sai lệch hiện tại )2.

                    ĐỘ HIỆU QUẢ CỦA MẠNG NEURON

                    Bằng cách dùng định lý Stone-Weierstrass trong thiết kế mạng neuron, chúng ta có thể đảm bảo rằng mạng neuron cũng có thể tính theo một biểu thức đa thức : nếu ta có các mạng neuron tính toán chính xác hai hàm f1 và f2 thì một mạng neuron lớn hơn có thể tính chính xác biểu thức đa thức của hai hàm đó. Điều chính yếu để thỏa định lý Stone-Weierstrass là phải tìm ra hàm biến đổi phép nhân thành phép cộng để có thể viết tích dưới dạng tổng.

                    NEUROFUZZYNEUROFUZZY

                    • KẾT HỢP NEURON VÀ MỜ
                      • HỌC HỎI TRONG NEUROFUZZY

                        Khi đó, ta sẽ có một hệ lai với ưu điểm của cả hai : logic mờ cho phép thiết kế hệ dễ dàng, tường minh trong khi mạng neuron cho phép học những gì mà ta yêu cầu về bộ điều khiển. • Mạng neuron lai có thể không dùng các phép toán nhân, phép toán cộng hoặc hàm dạng chữ S bởi vì kết quả của các phép toán này có thể không nằm trong khoảng [0,1].

                        VI ẹIEÀU KHIEÅNVI ẹIEÀU KHIEÅN

                        VI ẹIEÀU KHIEÅN AT89C52

                          PSEN (Program Store Enable) : PSEN là xung strobe báo hiệu việc đọc bộ nhớ chương trình ngoài, PSEN tích cực hai lần (mức thấp) mỗi chu kì máy, ngoại trừ hai xung PSEN bị mất khi truy xuất dữ liệu ngoài. Chú rằng khi kết thúc chế độ lười bằng cách reset phần cứng thì thông thường vi điều khiển sẽ gọi lại chương trình mà nó vừa thoát, cho đến hai chu kỳ máy trước khi thuật toán reset chiếm quyền điều khiển.

                          2.2. Sơ đồ khối
                          2.2. Sơ đồ khối

                          SƠ LƯỢC VỀ CÁC PHƯƠNG PHÁP BIẾN ĐỔI AD

                          • Biến đổi AD dùng bộ biến đổi DA

                            Bộ biến đổi loại này là một trong những bộ có thời gian biến đổi chậm nhất (thường là từ 10 đến 100ms) nhưng có lợi điểm là giá cả tương đối rẻ không dùng các thành phần chính xác như bộ biến đổi AD hoặc bộ biến đổi áp sang taàn soá. Do khoảng thời gian xả tỷ lệ với điện áp trên tụ lúc trước khi xả nên ở cuối thời điểm xả, counter sẽ chứa một giá trị tỷ lệ với điện áp trên tụ trước khi xả, tức là tỷ lệ với điện áp vào vA.

                            Sơ đồ mạch tương tự như bộ biến đổi AD theo hàm dốc nhưng không dùng  counter cung cấp giá trị cho bộ biến đổi DA mà dùng một thanh ghi
                            Sơ đồ mạch tương tự như bộ biến đổi AD theo hàm dốc nhưng không dùng counter cung cấp giá trị cho bộ biến đổi DA mà dùng một thanh ghi

                            CÁC IC KHÁCCÁC IC KHÁC

                              • Nguồn kích là diode hồng ngoại Gallium – Arsenide và nguồn nhận để lái triac là cặp silicon quang (đóng mở. hai chieàu). 74573 là IC chốt 8-bit, dùng trong kết nối vi xử lý với ngoại vi hay trong phân vùng địa chỉ trong các vi xử lý hay vi điều khiển dùng chế độ địa chỉ kiểu multiplex (địa chỉ và dữ liệu ra chung ngừ nhưng khỏc thời điểm) như họ MCS-51TM.

                              THERMOCOUPLETHERMOCOUPLE

                              SƠ LƯỢC VỀ CÁC DỤNG CỤ ĐO NHIỆT ĐỘ

                              • Các loại cảm biến hiện tại

                                Đầu những năm 1800, William Thomson (Lord Kelvin) phát triển một tầm đo phổ quát dựa trên hệ số giãn nở của khí lý tưởng. Tùy theo lĩnh vực đo và điều kiện thực tế mà có thể chọn một trong bốn loại cảm biến : thermocouple, RTD, thermistor, và IC bán dẫn.

                                THERMOCOUPLE

                                  Điều này nói lên rằng chúng ta không thể biết nhiệt độ tại J1 nếu chúng ta không biết nhiệt độ tại J2, tức là để biết được nhiệt độ tại đầu đo thì chúng ta cũng cần phải biết nhiệt độ môi trường nữa. Khối này cách điện nhưng dẫn nhiệt rất tốt nên xem như J3 và J4 có cùng nhiệt độ (bằng bao nhiêu thì không quan trọng bởi vì hai hiệu điện thế sinh ra luôn đối nhau nên luôn triệt tiêu nhau không phụ thuộc giá trị của nhiệt độ). Bù nhiệt của môi trường. Như trên đã phân tích, khi dùng thermocouple thì giá trị hiệu điện thế thu được bị ảnh hưởng bởi hai loại nhiệt độ : nhiệt độ cần đo và nhiệt độ tham chiếu. Cách gán 0°C cho nhiệt độ tham chiếu thường chỉ làm trong thí nghiệm để rút ra các giá trị của thermocouple và đưa vào bảng tra. Thực tế sử dụng thì nhiệt độ tham chiếu thường là nhiệt độ của môi trường tại nơi mạch hoạt động nên không thể biết nhiệt độ này là bao nhiêu và do đó vấn đề bù trừ nhiệt độ được đặt ra để sao cho ta thu được hiệu điện thế chỉ phụ thuộc vào nhiệt độ cần đo mà thôi. Bù trừ nhiệt độ không có nghĩa là ta ước lượng trước nhiệt độ môi trường rồi khi đọc giá trị hiệu điện thế thì trừ đi giá trị mà ta đã ước lượng. Cách làm này hoàn toàn không thu được kết quả gì bởi hai lý do :. • Nhiệt độ môi trường không phải là đại lượng cố định mà thay đổi theo thời gian theo một qui luật không biết trước. • Nhiệt độ môi trường tại những nơi khác nhau có giá trị khác nhau. Bù nhiệt môi trường là một vấn đề thực tế và phải xét đến một cách nghiêm túc. Có nhiều cách khác nhau, về phần cứng lẫn phần mềm, nhưng nhìn chung đều phải có một thành phần cho phép xác định nhiệt độ môi trường rồi từ đó tạo ra một giá trị để bù lại giá trị tạo ra bởi thermocouple. Các loại thermocouple. Về nguyên tắc thì người ta hoàn toàn có thể tạo ra một thermocouple cho giá trị ra bất kỳ bởi vì có rất nhiều tổ hợp của hai trong số các kim loại và hợp kim hiện có. Tuy nhiên để có một thermocouple dùng được cho đo lường thì người ta phải xét đến các vấn đề như : độ tuyến tính, tầm đo, độ nhạy, … và do đó chỉ có một số loại dùng trong thực tế như sau :. Loại J : kết hợp giữa sắt với constantan, trong đó sắt là cực dương và constantan là cực õm. Loại T : kết hợp giữa đồng với constantan, trong đó đồng là cực dương và constantan là cực õm. Loại K : kết hợp giữa chromel với alumel, trong đó chromel là cực dương và alumel là cực õm. Loại E : kết hợp giữa chromel với constantan, trong đó chromel là cực dương và constantan là cực õm. R) cực dương dùng dây 87% platinum và 13% rhodium, cực âm dùng dây thuần platinum.

                                  PHẦN CỨNGPHẦN CỨNG

                                  KHỐI XỬ LÝ TRUNG TÂM

                                  Như vậy, khi truy xuất dữ liệu bên ngoài thì đầu tiên trên Port0 sẽ là byte thấp của địa chỉ, ALE sẽ tác động cạnh xuống khi các giá trị đã ổn định ⇒ lúc này cần một IC để chốt các giá trị này lại thông qua tác động của ALE ⇒ dùng IC 74HCT573, ALE nối đến chân C. Sau đó, giá trị trên Port0 sẽ là dữ liệu (nhập hay xuất tùy theo read hay write thông qua tác động của chân RD hay WR, chân PSEN thay thế vai trò của chân RD khi đọc chương trình ngoài).

                                  PHAÂN VUỉNG ẹềA CHặ

                                  Tuy nhiên, việc truy xuất thiết bị ngoại vi (đọc hay ghi) đòi hỏi phải kết hợp 2 tín hiệu : tín hiệu phân vùng địa chỉ và tín hiệu RD hay WR (tùy theo đọc hay ghi) qua tổ hợp cổng logic thích hợp. Vì vậy, tùy theo thiết bị ngoại vi mà sẽ có một cổng logic phù hợp đi kèm.

                                  KHỐI BỘ NHỚ VÀ NGUỒN BACKUP

                                  Từ đó mới tạo ra tín hiệu kết nối vào thiết bị ngoại vi để truy xuất. Truy xuất dữ liệu trong RAM thông qua địa chỉ chứa trong DPTR và lệnh MOVX.

                                  KHOÁI HIEÅN THề

                                  Có một số ký tự thể hiện sự gượng ép (rất khó nhìn ra đó là ký tự) bởi vì led 7 đoạn khụng cú khả năng hiển thị ký tự. Nhưng khi đó việc lập trình càng khó hơn nữa, đôi khi không đáng vì chức năng chính của mạch là điều khiển nhiệt độ!.

                                  KHỐI BIẾN ĐỔI AD

                                  • Việc xuất byte thấp hay byte cao là phụ thuộc vào sự kết hợp của cả hai tín hiệu : tín hiệu yêu cầu đọc từ vi điều khiển (tín hiệu RD) và tín hiệu chọn vùng địa chỉ tương ứng. Do đó, tín hiệu RD và CS1 được kết hợp qua cổng OR để tạo ra tín hiệu LBEN kích hoạt việc xuất byte thấp, tương tự tín hiệu RD và CS2 được kết hợp qua cổng OR để tạo ra tín hiệu HBEN kích hoạt việc xuất byte cao.

                                  KHỐI CẢM BIẾN VÀ GIA CÔNG

                                  Các biến trở nên dùng loại biến trở tinh chỉnh (hay biến trở đo lường) có cấu tạo gồm nhiều vòng dây điện trở xoắn bên trong (chỉnh nhiều vòng mới hết giá trị), tránh dùng biến trở thông thường rất khó chỉnh và không ổn định (khi va chạm nhẹ bị thay đổi giá trị). Các OPAMP dùng loại OP07 hoặc tương đương, có mức offset thấp để phù hợp với các đại lượng đo có giá trị nhỏ, các chân 1 và 8 dùng để chỉnh offset không dùng trong thiết kế này.

                                  KHỐI BÀN PHÍM

                                    Kết quả trả về thông qua cờ carry : C = 1 nếu có phím bị nhấn và mã hex nằm trong nibble thấp của thanh ghi tích lũy, C = 0 nếu không có phím nào bị nhấn. Sau khi đã phát hiện có phím ấn, IN_HEX sẽ chờ một khoảng thời gian tương ứng 50 lần gọi GET_KEY để đảm bảo rằng không còn rung cho lần gọi GET_KEY keá tieáp.

                                    TRUYEÀN THOÂNG NOÁI TIEÁP

                                    Từ sơ đồ mạch trên, ta thấy rằng việc truyền thông diễn ra thông qua 3 dây : TXD, RXD, và GND, tức là không dùng chế độ bắt tay bằng phần cứng (cặp DSR/DTR hay CTS/RTS). Đầu ra của board điều khiển được thiết kế cùng loại với đầu ra của máy vi tính (loại male, và giống chức năng chân) nên bắt buộc phải đấu chéo dây như trên sơ đồ.

                                      HEÄ THOÁNGHEÄ THOÁNG

                                      THIẾT KẾ HỆ MỜ

                                      • Các nguyên tắc trong thiết kế
                                        • Thiết kế hệ mờ cho điều khiển nhiệt độ

                                          Nếu việc viết ra một số luật ban đầu này khó khăn thì có thể bắt đầu với 3 giá trị cho các biến ngôn ngữ vào và 5 giá trị cho biến ngôn ngữ ra (đây là giá trị tối thiểu cho hầu hết ứng dụng). Đối tượng điều khiển là một lò nướng dân dụng có độ quán tính tương đối lớn, trong khoảng thời gian lấy mẫu là 3 giây chỉ tăng hay giảm tối đa 1,3°C nên ta định nghĩa DET với miền xác định là [-2,+2].

                                          THIEÁT KEÁ HEÄ NEUROFUZZY

                                            Định nghĩa : độ mạnh yếu của luật (hay còngọi là mức độ hỗ trợ của luật) là khả năng ảnh hưởng của luật đó đối với đầu ra của hệ. Giá trị 0 tương ứng với việc loại luật đó ra khỏi tầm ảnh hưởng và giá trị 1 tương ứng với việc luật đó có ảnh hưởng hoàn toàn đến kết quả ra.

                                            PHAÀN MEÀMPHAÀN MEÀM

                                            PHA HOẠT ĐỘNG

                                            • Tính độ phụ thuộc

                                              Bắt đầu từ luật thứ nhất trong hệ luật, khối xử lý mờ sẽ tính độ phụ thuộc của từng tập mờ mô tả trong luật, suy luận theo phương thức Min rồi kết hợp với độ hỗ trợ của luật đó tạo ra độ phụ thuộc chính của phần suy luận. Dễ thấy rằng trong các chương trình tính độ phụ thuộc theo những dạng hàm trên đều gọi hai chương trình con là chương trình tính độ phụ thuộc theo hàm dốc lên và chương trình tính độ phụ thuộc theo hàm dốc xuống.

                                              CHệễNG TRèNH TREÂN KIT AT89C52

                                              • Nhập dữ liệu
                                                • Phân bố tài nguyên

                                                  • Chế độ điều khiển nhiệt độ bằng kit có hai lựa chọn : một là sử dụng các tập mờ mặc định đã chứa sẵn trên kit, hay là sử dụng các tập mờ khác thì cần nhập các thông số như số tập mờ trên một biến ngôn ngữ, các điểm đặc trưng cho một tập mờ (sẽ nói sau), và hệ luật (có thể dùng máy tính cho thao tác này thay vì nhập bằng phím : sau khi đã tạo các tập mờ và luật trên máy tính thì cho nó truyền xuống theo chế độ kit điều khiển). Nếu chế độ hoạt động thuộc loại máy tính đo hay máy tính điều khiển thì trong quá trình hoạt động, kit sẽ gửi giá trị nhiệt dộ đo được, còn máy tính thì sẽ gửi byte báo hiệu tằt hay mở lò tùy theo giá trị của byte do người thiết kế qui định.

                                                  Hình dạng 1 byte
                                                  Hình dạng 1 byte

                                                  CHƯƠNG TRÌNH TRÊN MÁY TÍNH

                                                  • Qui định kiểu dữ liệu
                                                    • Giới thiệu chương trình NF Control
                                                      • Giao tiếp giữa NF Control và fuzzyTech

                                                        Chỉ gồm các ký tự (chuỗi) chỉ tập mờ nào của ET, DET ở phần if, các ký tự (chuỗi) chỉ tập mờ nào của OUT ở phần Then, và thêm giá trị hỗ trợ (cũng dùng ở dạng các ký tự để dễ hiển thị trên màn hình, nhưng khi tính thì phải chuyển sang giá trị số dùng hàm StrToInt chẳng hạn). Hơn nữa nếu viết chương trình theo hướng của fuzzyTECH thì có thể tận dụng hai thư viện động là fuzzy Runtime Control (ActiveX) và fuzzy Runtime DLL (NF Control viết chương trình điều khiển riêng cho phù hợp kit AT89C52 đã thiết kế, không dùng những thành phần này).

                                                        Bảng luật :
                                                        Bảng luật :

                                                        Đ Đ IỀU KHIỂN THỰC TẾ IỀU KHIỂN THỰC TẾ

                                                          Thực ra tham vọng của tác giả rất lớn : muốn biến chương trình NF Control thành một chương trình mẫu tổng quát cho điều khiển lò nhiệt, tức là có đầy đủ các phương pháp điều khiển như On-Off, PID, PID tự chỉnh định, mờ và NeuroFuzzy có sẳn chức năng học trên chương trình, không phải dựa vào chương trình fuzzyTech. Tuy nhiên do thời gian có hạn và sức người có hạn nên chỉ thực hiện được theo yêu cầu đề tài mà không thể mở rộng thêm.