Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Як задати тимчасову затримку при моделюванні термостата

  1. Навіщо в термостатах використовується затримка
  2. Програмна реалізація тимчасової затримки при моделюванні термостата в COMSOL Multiphysics.
  3. Заключні зауваження з приводу реалізації затримки при моделюванні термостата

Термостати використовуються в більшості будинків для управління нагрівачами і кондиціонерами для підтримки комфортної внутрішньої температури. Простий термостат, керуючий нагрівачем, має всього два стани: включений і виключений. Таку систему управління легко реалізувати в COMSOL Multiphysics, використовуючи фізичний інтерфейс Events (Події), якому присвячена попередня стаття нашого блогу. Сьогодні ми покажемо, як розширити розглянуту раніше модель термостата, додавши тимчасову затримку на вмикання чи вимикання нагрівача.

Навіщо в термостатах використовується затримка

Звичайний домашній термостат для вашого нагрівача або кондиціонера має два температурні режими:

  1. Увімкнути, при якому нагрівач включається з максимально можливою швидкістю
  2. Викл, при якому нагрівач вимикається

На практиці ви можете безпосередньо управляти одним з цих режимів, при цьому інший автоматично встановлюється відмінним на кілька градусів. Така схема управління може бути змодельована на основі прикладу з попередньої статті блогу про термостати . Сьогодні ми додамо тимчасову затримку між перемиканням станів нагрівача при моделюванні термостата.

Причини використання затримки можуть бути різні, але одна з головних - це запобігання короткочасного перемикання нагрівача. Багаторазове включення і виключення пристрою може призвести до надмірного зносу компонентів системи , Що спричинить за собою витрати на ремонт, чого ми хочемо уникнути.

Існують різні схеми затримок, які ми можемо використовувати для запобігання короткочасного перемикання. Їх загальний підхід в тому, щоб підтримувати нагрівач у включеному або вимкненому станах протягом деякого мінімального часу перед перемиканням. Давайте подивимося, як ця схема управління реалізується в COMSOL Multiphysics.

Програмна реалізація тимчасової затримки при моделюванні термостата в COMSOL Multiphysics.

Припустимо, що у вас є теплова модель приміщення або будь-який інший системи, в якій ви хочете керувати нагрівачем за допомогою термостата з затримкою. У такій моделі ви можете вибрати одну точку в якості положення датчика температури термостата, як описано в нашій попередній статті блогу по моделюванню термостатів. Як уже згадувалося раніше, ми будемо використовувати фізичний інтерфейс Events (Події) для контролю включення / вимикання нагрівача в нашій моделі.

Теплова модель приміщення
Теплова модель приміщення. Термостат відстежує температуру датчика і управляє включенням / виключенням нагрівача.

Перед тим як перейти до реалізації, давайте точно опишемо алгоритм бажаної роботи термостата. У нас є термостат з верхньої та нижньої температурними уставками (контрольними значеннями), і ми хочемо, щоб нагрівач підтримував поточний включене або вимкнений стан протягом заданого часу затримки. Ми можемо сформулювати це, використовуючи два окремих твердження:

  1. Якщо нагрівач знаходиться у вимкненому стані довше, ніж зазначений час затримки і якщо температура менше нижньої уставки, то включаємо нагрівач.
  2. Якщо нагрівач знаходиться у включеному стані довше, ніж зазначений час затримки і якщо температура більше верхньої уставки, то вимикаємо нагрівач.

Ці два твердження можуть бути реалізовані в фізичному інтерфейсі Events (Події). Нам просто необхідно поставити спосіб контролю часу, що пройшов з моменту останнього перемикання термостата. На скріншотах нижче зображено, як налаштувати такі умови.

Вузол Дискретні стану (Discrete States), який визначає два стану нагрівача
Вузол Дискретні стану (Discrete States), який визначає два стану нагрівача.

Фізичний інтерфейс Events (Події) містить кілька вузлів, перший з яких Discrete States (Дискретні стану), як показано на скріншоті вище. Визначено дві дискретні змінні: HeaterState (Стан нагрівача) і TimeOfSwitch (Час перемикання). Початкове значення змінної HeaterState - одиниця, означає, що спочатку нагрівач включений. Ця змінна використовується як множник додається теплового навантаження у фізичному інтерфейсі Heat Transfer in Solids (Теплопередача в твердих тілах). Щоб вимкнути нагрівач, змінної HeaterState присвоюється нульове значення. Мінлива TimeofSwitch контролює час, що минув з моменту останнього перемикання. Для цієї змінної початкове значення - нуль, що означає, що в момент часу t = 0 стан нагрівача переключилася.

Ці дві змінні вузла Discrete State змінюються тільки за умови виконання певної події, для цього необхідно контролювати час, що минув з останнього перемикання, і температуру датчика в заданих межах. Останнє задається в вузлі Indicator States (Індикатори стану), як показано на скріншоті нижче.

Вузол Індикатори стану (Indicator States) визначає три різних індикатора, які будуть впливати на перемикання
Вузол Індикатори стану (Indicator States) визначає три різних індикатора, які будуть впливати на перемикання.

На наведеному скріншоті ми бачимо, що під час моделювання відслідковуються значення трьох різних індикаторів стану. По-перше, індикатор стану TurnOn (включено), заданий виразом T_bot-T_s, який буде переключатися у включений стан, коли ми захочемо включити нагрівач, де T_bot - це Глобальний параметр (Global Parameter). Мінлива T_s - це температура датчика, яка задається інтегралом в точці (Point Integration) і пов'язаної з ним змінної, як описано в нашій попередній статті по термостатам . Аналогічно, індикатор стану TurnOff (вимкнено) задається виразом T_s-T_top - він буде перемикатися, коли ми захочемо вимкнути нагрівач.

Індикатор стану OkToSwitch (умова для перемикання) задається виразом t-TimeOfSwitch-Delay і перемикається після того, як нагрівач знаходиться у включеному або вимкненому стані довше, ніж заданий час затримки, де Delay (час затримки) є Глобальним параметром. Ці дискретні стану і індикатори стану використовуються для активації одного з двох вузлів Implicit Events (Неявні стану), як зображено на скріншотах нижче.

Перший вузол Implicit Event контролює включення нагрівача
Перший вузол Implicit Event контролює включення нагрівача.

На вищенаведеному скріншоті перший вузол Implicit Event використовується для включення нагрівача. Умова для події (Event Condition): (OkToSwitch> 0) && (HeaterState == 0) && (TurnOn> 0). Це логічне умова може бути прочитаний як: Якщо час, що минув з моменту останнього перемикання, більше, ніж заданий час затримки, і, якщо нагрівач в даний момент вимкнений, і, якщо температура датчика нижче встановленого значення, то слід активувати Подія і перемкнути його стан . Коли цей стан переключиться, вирішувач увімкнеться знову і перевизначити Стан нагрівачі (HeaterState) до одиниці, і нагрівач включається. Крім того, Час перемикання (TimeOfSwitch) переопределяется до поточного часу t. Ці дві змінні залишаються незмінними до тих пір, поки не буде активовано інше Неявне подія (Implicit Event).

Другий вузол Implicit Event контролює відключення нагрівача
Другий вузол Implicit Event контролює відключення нагрівача.

Другий вузол Implicit Event, зображений вище, майже ідентичний першому, але навпаки відключає подія. Коли умова (OkToSwitch> 0) && (HeaterState == 1) && (TurnOff> 0) виконується, цей вузол перекриває HeaterState (Стан нагрівача) до нуля і TimeSinceSwitch (Час, що минув з останнього перемикання), до поточного часу.

Ви можете запитати, чому в цих двох станах ми перевіряємо, чи вимкнене нагрівач, перш ніж його включити (і, аналогічно, перевіряємо, чи включений нагрівач, перш ніж його вимкнути)? Ця додаткова перевірка потрібна для того, щоб уникнути випадкового спрацьовування і занадто частого перевизначення змінної TimeOfSwitch для часу перемикання. Система може природним чином (через деяких змін або відхилень граничних умов) прийти в стан, в якому температура датчика перевищує максимальне задане значення без будь-якого нагріву. Або температура датчика може опуститися нижче мінімального заданого значення при включеному нагрівачі. Ми не хочемо, щоб такі випадки приводили до випадкових спрацьовувань, тому виконуємо додаткові перевірки.

За допомогою функцій, які описані вище, ми реалізували модель термостата з затримкою між перемиканнями. Перед тим як запускати на розрахунок, переконайтеся, що початкові значення змінних в вузлі Дискретні стану (Discrete States), HeaterState і TimeOfSwitch відповідають початковому стану нагрівача і останньому станом перемикання. Також майте на увазі, що вам, можливо, знадобиться налаштувати вузол Event Tolerance (допустима точність), як показано в нашій попередній статті блогу по термостатам.

Тепер давайте подивимося на деякі результати.

Термостат з затримкою може перемикатися тільки кожні п'ять хвилин
Термостат з затримкою може перемикатися тільки кожні п'ять хвилин. Горизонтальними пунктирними лініями позначені верхня і нижня температурні уставки термостата.

На наведеному вище графіку ми можемо спостерігати характер зміни затримки термостата. Температура датчика в початковий момент нижче обох уставок і нагрівач включається в нульовий момент часу. Системі потрібно приблизно сім хвилин, щоб температура датчика досягла верхнього значення уставки, і в цей момент нагрівач вимикається. Система починає остигати досить швидко, але термостат не може переключитися до закінчення п'яти хвилин. Температура термостата опускається нижче заданої мінімальної уставки, перш ніж нагрівач знову включиться. Після включення нагрівача температура системи піднімається вище заданої максимальної уставки, знову ж таки через п'ятихвилинної затримки перемикання. Ми можемо спостерігати ці коливання в меншу і більшу сторони, що повторюються в часі.

Заключні зауваження з приводу реалізації затримки при моделюванні термостата

Методика, описана в цій статті, дозволить вам реалізувати модель термостата з затримкою між будь-якими перемиканнями і є поданням багатьох реальних схем управління. Ключова відмінність при моделюванні термостата з затримкою на відміну від моделі без неї - це введення додаткових змінних - Indicator State (Індикаторів стану), які відстежують час перемикання термостата.

Зрозуміло, що описана методика підходить не тільки для контролю температури. У COMSOL Multiphysics можна використовувати фізичний інтерфейс Events (Події) всякий раз, коли є перехідні процеси.

  • Якщо у вас залишилися які-небудь питання з приводу даної методики чи ви хочете використовувати COMSOL Multiphysics для моделювання, будь ласка, не соромтеся звертатися до нас .
  • Прочитайте пов'язані з цією темою статті нашого блогу для отримання більш детальної інформації про фізичну інтерфейсі Events і термічних розрахунках приміщень:

Ви можете запитати, чому в цих двох станах ми перевіряємо, чи вимкнене нагрівач, перш ніж його включити (і, аналогічно, перевіряємо, чи включений нагрівач, перш ніж його вимкнути)?