Как задать временную задержку при моделировании термостата

30/06/2016

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

Зачем в термостатах используется задержка

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

  1. Вкл, при котором нагреватель включается с максимально возможной скоростью
  2. Выкл, при котором нагреватель выключается

На практике вы можете напрямую управлять одним из этих режимов, при этом другой автоматически устанавливается отличным на несколько градусов. Такая схема управления может быть смоделирована на основе примера из предыдущей статьи блога про термостаты. Сегодня мы добавим временную задержку между переключением состояний нагревателя при моделировании термостата.

Причины использования задержки могут быть разные, но одна из главных — это предотвращение кратковременного переключения нагревателя. Многократное включение и выключение устройства может привести к чрезмерному износу компонентов системы, что повлечет за собой расходы на ремонт, чего мы хотим избежать.

Существуют различные схемы задержек, которые мы можем использовать для предотвращения кратковременного переключения. Их общий подход в том, чтобы поддерживать нагреватель во включенном или выключенном состояниях в течении некоторого минимального времени перед переключением. Давайте посмотрим, как эта схема управления реализуется в COMSOL Multiphysics.

Программная реализация временной задержки при моделировании термостата в COMSOL Multiphysics.

Предположим, что у вас есть тепловая модель помещения или любой другой системы, в которой вы хотите управлять нагревателем с помощью термостата с задержкой. В такой модели вы можете выбрать одну точку в качестве положения датчика температуры термостата, как описано в нашей предыдущей статье блога по моделированию термостатов. Как уже упоминалось ранее, мы будем использовать физический интерфейс Events (События) для контроля включения/выключения нагревателя в нашей модели.

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

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

  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 (События) всякий раз, когда есть переходные процессы.


Комментарии (0)

Оставить комментарий
Войти | Регистрация
Загрузка...
РУБРИКАТОР БЛОГА COMSOL
РУБРИКИ
ТЕГИ