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

В этом примере блок таблицы истинности с меткой ClimateController управляет всеми выходами физической подсистемы. Блок использует четыре входа: желаемая температура T_thresh, фактическая домашняя температура t, требуемая влажность H_threshи фактическая домашняя влажность h. Дважды щелкните блок, чтобы увидеть, как блок использует входные данные для создания выходных данных. Блок контроллера климата включает в себя две таблицы: таблицу условий и таблицу действий.
Таблица условий показывает, как логически оцениваются входные данные, и иллюстрирует два сравнения, выполненные блоком, и четыре действия, которые могут быть выполнены. Для выполнения первого действия два условия должны быть True. Если ни одно из условий не является True, блок проверяет условия, изложенные в следующем столбце решения, который требует, чтобы было только первое условие True. Эта оценка продолжается слева направо до тех пор, пока не будет принято решение или не будет достигнут последний столбец решения, который затем выполняется. В этом примере - записи функционируют, как False условия. В результате блок будет вести себя так же, если - условия были явно определены как False. Однако автоматически созданный код используется только True и False условия могут создавать неоптимальное покрытие кода. Во избежание этой проблемы в этом примере используется - условия.
В первом ряду блок сравнивает домашнюю температуру с требуемой температурой, и домашний охладитель и нагреватель управляются с помощью CoolOn и HeatOn действия, соответственно. Когда t > T_thresh, блок активирует CoolOn действия. Если это условие отсутствует True, блок активирует HeatOn действия. Во втором ряду блок сравнивает домашнюю влажность с требуемой влажностью, и увлажнителем управляют с помощью HumidOn действия. Когда h < H_thresh, блок активирует HumidOn действия.

Таблица действий определяет блочные выходы, связанные с каждым логическим действием. В первой строке, CoolOn устанавливает значение cooler кому 1 и значение heater кому 0. Во втором ряду, HeatOn устанавливает значение heater кому 1 и значение cooler кому 0. По умолчанию увлажнитель имеет значение 0 если блок не активирует HumidOn.

В модели зеленые блоки Humidifier, Cooler и Heater представляют физические подсистемы, регулирующие климат дома. Подсистема Humidifier включает в себя блок Switch, который взаимодействует с выходом блока ClimateController. Если вход в подсистему увлажнителя 1, выходы подсистемы 1.5. В противном случае подсистема выдает значение 0.

Подсистемы нагревателя и охладителя работают по аналогичным принципам. Каждый из них включает в себя два блока Switch. Один блок коммутатора выводит значение, влияющее на температуру, которое является выходом портов dt и dt1 для охладителя и нагревателя соответственно. Другой блок коммутатора выдает значение, влияющее на влажность, которое выводится в портах dh и dh1 для охладителя и нагревателя соответственно. Если cooler = 1, подсистема охладителя активируется, и если heater = 1, подсистема нагревателя активируется. При включении подсистема нагревателя выводит 1 на dt1 и выходах охладителя -1 при dt. Вывод обеих подсистем -0.5 на dh и dh1 при зацеплении.

Из-за настройки блока ClimateController подсистемы охладителя и нагревателя не активизируются одновременно.
Внешняя жара и влажность также влияют на климат дома. Модель отражает влияние этих условий в виде потока тепла и влажности. Подсистема ExternalHeatFlow моделирует внешний тепловой поток, а подсистема ExternalHeatFlow моделирует внешний влажный поток. Подсистема ExternalHeatFlow принимает разность между внешними и внутренними температурами и умножает разность на коэффициент.

Более высокие значения коэффициента представляют собой большие тепловые потоки, возникающие в менее изолированных домах. Хотя подсистема externalFlow представляет иное физическое поведение, чем externalHeatFlow, подсистема externalFlow использует такую же компоновку блоков и соединений. Подсистема externalFlow принимает разность между внешней и внутренней влажностью и умножает разность на коэффициент.
При выполнении модели заполняются два блока плавающей области. Блок Scope с меткой temperateScope отображает внешнюю температуру (ETи домашнюю температуру (temperature).

Блок Объема маркировал сюжеты humidityScope внешней влажностью (EH) и домашней влажности (humidity).

Моделирование настроено на неограниченное время. Чтобы остановить моделирование, его можно остановить вручную, нажав кнопку «Остановить» или настроив время остановки перед запуском моделирования.
Можно регулировать внешнюю температуру, используя другой сигнал внешней температуры или изменяя амплитуду сигнала. Попробуйте настроить амплитуду блоков синусоидальной волны, externalTemp и externalHumid и посмотрите, как реагирует модель.
Другие дома могут быть не такими изолированными или иметь более эффективные подсистемы климат-контроля. Эти физические различия влияют на выходные сигналы подсистем. Попробуйте настроить выходы подсистемы нагревателя или охладителя, изменив значения блока константы.