Nghiên cứu ứng dụng ba chế độ điều khiển ON-OFF, PID, Fuzzy trong hệ thống điều khiển mô hình lò nhiệt

MỤC LỤC

Sơ Đồ Mạch IC Đo và Khuếch Đại Tín Hiệu

- Tín hiệu nhiệt độ được đo qua đầu dò nhiệt (Thermocouple loại K) là tín hiệu suất điện động rất nhỏ khoảng 0,04mV/0C sau đú được đưa vào ngừ vào IC AD595 là dạng IC khuếch đại chuyên dụng cho Thermocouple loại K, tín hiệu này sẽ được khuếch đại lờn 250 lần và ngừ ra từ bộ khuếch đại sẽ cú giỏ trị khoảng 10mV/0C sau đú được đưa vào ngừ vào bộ chuyển đổi ADC. - Bộ ADC bên trong VĐK Atmega32 sẽ biến đổi tín hiệu điện áp thu được (dạng analog) thành giá trị số (digital) chứa trong thanh ghi ADCW và VĐK sẽ được lập trình để chuyển đổi giá trị này thành giá trị nhiệt độ tương ứng.

KHỐI GIAO TIẾP MÁY TÍNH

Sơ lược về chuẩn RS-232

Trong giao thức RS-232-C, các tham số truyền và nhận được chọn từ một miền các giá trị chuẩn. Một số máy tính như PCJr dùng chân cắm BERG 16 chân, máy PC AT thì sử dụng chân cắm D-Shell 9 chân.

KHẢO SÁT VI ĐIỀU KHIỂN ATMEGA32 3.1 Đặc Điểm Chung Của VĐK ATMEGA32

    ATmega cung cấp 64K bytes bộ nhớ Flash lập trình được trong hệ thống và có khả năng đọc/xóa/viết, 1K bytes bộ nhớ EFPROM, 2K bytes SRAM, 53 đường vào ra đa năng, 32 thanh ghi làm việc đa năng, bộ đếm thời gian thực (RTC), 4 bộ định thời/đếm linh hoạt với chế độ so sánh và điều chế độ rộng xung, 2 bộ USART, bộ ADC 8 kênh 10bit với sự lựa chọn ngừ vào cú thể lập trỡnh được độ lợi, bộ định thời watchdog lập trình được với bộ dao động bên trong, một cổng nối tiếp SPI, 6 chế độ tiết kiệm năng lượng lựa chọn được bằng phần mềm. Bằng cách kết hợp một CPU 8 bit có kiến trúc RISC với bộ nhớ Flash lập trình được trong hệ thống trên một chíp đơn lẻ, ATmega32 là loại vi điều khiển rất mạnh với tính linh hoạt cao trong sử dụng và chi phí hợp lý đối với nhiều ứng dụng điều khiển chúng trong thực tế.

    Hình dạng phân bố chân vào ra của ATmega32 dạng TQFP/MLF
    Hình dạng phân bố chân vào ra của ATmega32 dạng TQFP/MLF

    Data Memory Map

    Bộ nhớ SRAM

    Bộ nhớ SRAM có trong hầu hết các bộ xử lý của Vi Điều Khiển AVR. Dung lượng của bộ nhớ SRAM 2K byte, bộ nhớ SRAM được truy nhập bằng cách sử dụng nhiều lệnh truy nhập dữ liệu trực tiếp hoặc gián tiếp, bộ nhớ SRAM cũng được sử dụng cho ngăn xếp, thời gian truy nhập vào bộ nhớ SRAM bằng 2 chu kỳ đồng hồ. Tất cả các lệnh thao tác trên các thanh ghi đều có thể truy cập trực tiếp hoặc gián tiếp đến tất cả các thanh ghi.

    Thanh ghi R0 được sử dụng trong các lệnh nạp bộ nhớ chương trình LPM (load program memory), trong khi các thanh ghi R26 đến R31 được sử dụng làm các thanh ghi con trỏ. Các thanh ghi con trỏ này được sử dụng trong nhiều lệnh gián tiếp dùng trong thanh ghi. ATmega32 mở rộng không gian I/O từ $60 đến $FF trên SRAM chỉ có các lệnh ST/STS/STD và LD/LDS/LDD mới được sử dụng.

    Giao tiếp với bộ nhớ SRAM ngoài

      Bộ nhớ EEFROM được truy nhập qua các thanh ghi truy nhập EEFROM: Thanh ghi địa chỉ EEAR, thanh ghi dữ liệu EEDR, thanh ghi điều khiển EECR. − Khi muốn đọc dữ liệu từ bộ nhớ EEPROM thì phải chờ quá trình ghi thực hiện xong rồi đọc dữ liệu từ thanh ghi EEDR. − Khi bit EEMWE được thiết đặt lên 1 và bit EEWE được đặt lên 1 trong 4 chu kỳ xung clock thì dữ liệu sẽ được viết vào bộ nhớ EEPROM tại địa chỉ đã lựa chọn.

      − Khi bit EEMWE được xóa về 0 thì bất chấp việc bit EEWE được đặt lên 1 việc ghi dữ liệu vào EEPROM không thực hiện được. − Khi địa chỉ và dữ liệu đã được lựa chọn hợp lý thì ghi bit EEWE lên 1, dữ liệu sẽ được viết vào bộ nhớ EEPROM. − Khi địa chỉ được lập chính xác trong thanh ghi EEAR thì khi ghi bit EERE lên 1 sẽ cho phép đọc dữ liệu từ EEPROM.

      Giới thiệu các thanh ghi chuyển đổi ADC

      − Điện áp tham chiếu nội không được sử dụng nếu điện áp tham chiếu ngoài được sử dụng tại chân AREF.

      MUX4:0

      − Khi bit này được đặt lên 1 cho phép ADC hoạt động, ngược lại sẽ cấm ADC. Trong lúc quá trình chuyển đổi đang tiến hành ta xóa bit này về 0 thì quá trình chuyển đổi sẽ kết thúc.

      ADTS2:0

        Việc kết thúc quá trình biến đổi, nghĩa là thời điểm mà một tín hiệu analog đã được số hoá và sẵn sàng chờ xử lý tiếp tục, sẽ được báo hiệu qua cờ ngắt ADIF trong thanh ghi điều khiển và trạng thái ADC (ADCSRA). Bộ định thời Wachdog là một bộ định thời điều khiển, được sử dụng làm thiết bị đánh thức trong trường hợp phần mềm bị rơi vào một hoặc một số vòng lặp vô tận hoặc việc thực thi chương trình bị mắc lỗi. Bằng cách điều khiển mạch chia tần số Watchdog timer, khoảng thời gian reset mạch Watchdog có thể điều chỉnh được, các khoảng Reset mạch Watchdog cũng phụ thuộc vào điện áp nguồn nuôi.

        Nếu một ngắt đã cho phép xuất hiện trong khi MCU đang ở trạng thái ngủ, thì MCU sẽ thức dậy thực thi đoạn chương trình ngắt và lại tiếp tục thực thi từ lệnh kế tiếp theo lệnh Sleep. Nếu sự đánh thức từ ngắt bộ so sánh analog không được yêu cầu, thì bộ so sánh analog có thể bị ngắt nguồn nuôi bằng cách đặt bit ACD vào thanh ghi điều khiển và trạng thái so sánh analog ACSR. Trong chế độ này, bộ dao động ngoài bị ngưng hoạt động, trong khi các ngắt ngoài và mạch Watchdog vẫn tiếp tục hoạt động hoặc ngắt theo mức ngoài lên INT0 hoặc INT1 mới có thể đánh thức MCU.

        Hình 2.10: Sơ đồ khối bộ định thời Watchdog
        Hình 2.10: Sơ đồ khối bộ định thời Watchdog

        KHỐI CÔNG SUẤT

          Đặc tính này cho phép MCU đánh thức các ngắt được trigger từ bên ngoài cũng như ngắt bên trong giống như ngắt tràn bộ định thời và đặt lại watchdog. Khi bit SM được đặt lên một, lệnh Sleep bắt buộc MCU chuyển sang chế độ tiết kiệm năng lượng hay giảm dòng tiêu thụ (power-down).

          Hình dạng thực tế một số loại SS RELAY của hãng OMRON
          Hình dạng thực tế một số loại SS RELAY của hãng OMRON

          PHƯƠNG PHÁP ĐIỀU KHIỂN NHIỆT ĐỘ

          • Điều khiển kiểu ON/OFF
            • Điều khiển kiểu FUZZY
              • Nguyên lý điều khiển mờ

                Đây là một ưu điểm, bởi vì nó sẽ làm giảm độ nhạy của bộ điều khiển đối với các 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 vi phân lý tưởng thì cũng không nên dùng). Bởi vì đầu ra của bộ điều khiển chỉ thay đổi khi sai lệch thay đổi, tức là nếu sai lệch lớn mà không thay đổi thì bộ điều khiển chagng làm gì cả : chấp nhận sai lệch đó. Tức là kết hợp tất cả ưu điểm của các bộ điều khiển kể trên : tích phân loại bỏ sai lệch tĩnh, vi phân giảm khuynh hướng dao động và tính trước giá trị tương lai của sai lệch đặc biệt hữu dụng khi tải thay đổi bất ngờ.

                Trong lĩnh vực tự động hóa, việc điều khiển các đối tượng như nhiệt độ, áp suất, lưu lượng, độ ẩm, vận tốc, gia tốc… luôn là một bài toán khó vì tính chất phi tuyến của các đối tượng này. Phương pháp điều khiển mờ, Fuzzy Logic, đưa ra cách thức điều khiển dựa trên các luật phát biểu gần với suy nghĩ của con người thay vì dựa trên các phương trình toán học phức tạp. Việc thiết kế bộ PID kinh điển thường dựa trên phương pháp Zeigler-Nichols, Offerein, Reinish … Ngày nay người ta thường dùng kỹ thuật hiệu chỉnh PID mềm (dựa trên phầm mềm), đây chính là cơ sở của thiết kế PID mờ hay PID thích nghi.

                Đồ thị mô tả đáp ứng của bộ điều khiển Tỉ Lệ
                Đồ thị mô tả đáp ứng của bộ điều khiển Tỉ Lệ

                Phần A: HƯỚNG DẪN SỬ DỤNG THIẾT BỊ Giao diện chương trình giao tiếp máy tính

                - Ngoài ra người dùng còn có thể thiết lập các thông số điều khiển bằng thanh công cụ ở phía trên. Sau đó nhập các thông số điều khiển như nhiệt độ đặt, quá nhiệt, ….tùy theo từng chế độ. + Điều khiển thường: là nhập nhiệt độ, các thông số cần thiết vào lò sẽ hoạt động bình thường.

                + Điều khiển tuần tự: Cho phép nhập 4 mốc nhiệt độ và thời gian tồn tại của mỗi mốc. Khi nhiệt độ đo lớn hơn thông số quá nhiệt => lò tự động ngắt và phát còi cảnh báo. - Ngoài ra từ giao diện chính có thể click vào button Graph để thu thập thông số về máy tính và vẽ đồ thị đáp ứng của lò.

                Giao diện nhập thông số trên LCD

                Con trỏ sẽ nhấp nháy tại vị trí Control người dùng có thể dùng phím UP hoặc DOWN để thay đổi thành các chế độ điều khiển khác như ON/OFF, FUZZY. Tương tự như trên người dùng sử dụng phím Mode để di chuyển đến các đối tượng khác như Kp, Ki, Kd (giá trị giới hạn là từ 0-500). Các thông số Kp dùng để thay đổi thời gian tăng trưởng nhiệt độ, Ki giảm độ sai lệch tĩnh và Kd giảm độ vọt lố.

                Trước khi thoát ra ngoài con trỏ sẽ di chuyển đến mục Nhiệt độ đặt, người dùng có thể dùng phím UP/DOWN để tăng hoặc giảm nhiệt độ đặt (mức thay đổi từ 0- 200). Tương tự như trên ta dùng phím MODE để di chuyển đến đối tượng cần chỉnh và phím UP/DOWN để tăng giảm đối tượng. Ở chế độ này có thông số Off before để cài đặt lò tắt trước bao nhiêu phần trăm nhằm giảm thiểu độ trôi nhiệt đối với chế độ ON/OFF.

                Hình ảnh bên ngoài lò sấy
                Hình ảnh bên ngoài lò sấy