Смоделируйте систему отопления дома

Этот пример показывает, как смоделировать и симулировать динамическую систему с помощью программного обеспечения Simulink®. Модель для системы отопления, которая включает нагреватель (модель объекта управления), которой управляет термостат (модели контроллеров), чтобы нагреть комнату (модель среды) к установленной температуре. В то время как это - простая модель, процессы для создания структуры модели и проекта алгоритма являются теми же процессами, которые вы будете использовать в более сложных моделях.

Чтобы рассмотреть завершенную модель, в Командном окне MATLAB®, входят

open_system(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))

Задайте систему отопления дома

Моделирование начинается с завершения задач, которые являются за пределами программной среды Simulink. Требования модели Define и выводят математические уравнения. Соберите данные для параметров модели и измерений данных о выходном сигнале, чтобы подтвердить результаты симуляции.

Определите цели моделирования

Прежде, чем спроектировать модель, рассмотрите свои цели и требования. Цели по моделированию системы отопления дома:

  • Наблюдайте, как изменяющаяся наружная температура влияет на внутреннюю температуру.

  • Исследуйте эффект изменяющихся параметров на внутренней температуре.

Идентифицируйте компоненты системы

Если вы изучаете свои требования моделирования, можно начать идентифицировать компоненты системы.

Система отопления дома в этом примере задает систему отопления и ее отношение в комнату. Это включает:

  • Тепловые характеристики дома

  • Тепловые характеристики нагревателя

  • Термостат, чтобы управлять нагревателем

  • Наружная среда

  • Внутренняя среда

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

Модель для этой системы включает три компонента: нагреватель, термостат и комната.

Определите системные уравнения

Три зависящих от времени переменные задают теплообмен в комнате:

  • Температура комнаты (Troom)

  • Приток теплоты: Тепловая энергия передается от нагревателя (Qgain) в комнату

  • Потеря тепла: Тепловая энергия передается из комнаты (Qloss) к наружной среде

Дифференциальное уравнение задает отношение между этими переменными, но поскольку теплопередача задана в терминах изменения температуры, только комнатная температура является переменной состояния.

Уровень уравнения притока теплоты

Температура воздуха в нагревателе является постоянной в Theater, и комнатной температурой является Troom. Тепловое энергетическое усиление в комнату конвекцией нагретого воздуха от нагревателя с теплоемкостью cair. Приток теплоты для массы воздуха в нагревателе, mheaterair, пропорционально перепаду температур между нагревателем и комнатой:

Qgain=mheateraircair(TheaterTroom).

Уровень теплового энергетического усиления от нагревателя

dQgaindt=dmheaterairdtcair(TheaterTroom).

Вентилятор подышал воздухом помещения и передает его через нагреватель и назад в комнату. Постоянная сумма воздуха, Mheaterair, потоки через нагреватель в единицу времени, и заменяющий dmheaterair/dtс той константой упрощает уравнение до

dQgaindt=Mheateraircair(TheaterTroom).

Уровень уравнения потери тепла

Тепловая энергетическая потеря от комнаты проводимостью через стены и окна, и пропорциональна перепаду температур между комнатной температурой и наружной температурой:

Qloss=kA(TroomToutside)tD.

Уровень тепловой энергетической потери

dQlossdt=kA(TroomToutside)D.

Заменяя kA/D с 1/R где R тепловое сопротивление, упрощает уравнение до

dQlossdt=(TroomToutside)R.

Уравнение температуры примерочной

Задайте уровень изменения температуры в комнате путем вычитания уровня потери тепла от уровня притока теплоты:

dTroomdt=1mroomaircair(dQgaindtdQlossdt).

Соберите данные о параметре

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

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

Переменные уравнения и Константы.  Можно использовать постоянные имена и значения в этой таблице при создавании модели.

Переменная уравнения или коэффициентОписаниеМодули
A

Область стены или окна surfaceA_wall = 914, A_window = 6

квадратный метр
D

Глубина стены или окна D_wall = 0.2, D_window 0.01

метр
QТепловая энергия передаетсяджоуль
dQ/dtУровень тепловой энергии передаетсяджоуль/час
k

Теплопроводность; свойство материала провести теплопередачу k_fiberglass = 136.8, k_glass = 2808

джоуль/метр · час· градус
r

Тепловое удельное сопротивление; свойство материала сопротивляться теплопередаче r = 1/k

метр · час· степень/джоуль
R

Тепловое сопротивление R = D/kA = (T1 — T2)Q

R_wall = 1.599e-6, R_window = 5.935e-7

R_equivalent = (R_wall * R_window)/(R_wall + R_window) = 4.329e-7

час· степень/джоуль
m

Масса воздуха в комнате или нагревателе m_room_air = 1470

Масса нагревателя m_heater_air не нужно для этой модели.

килограмм
dm/dtУровень массы воздуха, проходящей через нагревателькилограмм/час
M

Постоянный уровень массы воздуха, проходящей через нагреватель M_heater_air = 3600

килограмм/час
c

Удельная теплоемкость c_air = 1005.4

джоуль/килограмм · градус
Theater

Постоянная температура воздуха от нагревателя T_heater = 50

степень Цельсия
Troom

Начальная температура воздуха комнаты T_roomIC = 20

степень Цельсия

Система отопления дома модели

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

Структура верхнего уровня модели

В верхнем уровне обогревающей модели дома используйте блоки Subsystem, чтобы организовать вашу модель и создать структуру. Модель включает Термостат подсистем, Нагреватель и Комнату.

  1. Откройте новую модель Simulink: Откройте Новую Модель.

  2. В меню Display снимите флажок Hide Automatic Names.

  3. Откройте браузер библиотеки: Откройте браузер библиотеки Simulink

  4. Добавьте блоки Subsystem. Перетащите три блока Subsystem от библиотеки Ports & Subsystems до новой модели в Редакторе Simulink.

  5. Откройте блок Subsystem. Дважды кликните блок.

    Каждый новый блок Subsystem содержит один Inport (In1) и один блок Outport (Out1). Эти блоки задают интерфейс сигнала со следующим более высоким уровнем в иерархии модели.

    Каждый блок Inport создает входной порт на блоке Subsystem, и каждый блок Outport создает выходной порт. Добавьте больше блоков для дополнительных сигналов ввода и вывода.

  6. На Панели инструментов Simulink нажмите кнопку Navigate Up To Parent, чтобы возвратиться к верхнему уровню. Переименуйте блоки Subsystem как показано. Дважды кликните имя блока и введите новое имя.

Для каждого компонента смоделируйте уравнения, задайте параметры, подготовьте подсистему к симуляции и симулируйте, чтобы проверить ее поведение.

Компонент нагревателя модели

Давайте запустимся путем моделирования компонента системы нагревателя. Модель нагревателя:

  • Измеряет текущую температуру из комнаты и управляющий сигнал от термостата как входные параметры

  • Вычисляет приток теплоты от нагревателя

  • Выводит приток теплоты, когда управляющий сигнал включен

Чтобы смоделировать подсистему нагревателя, смоделируйте уровень уравнения притока теплоты с блоками Simulink:

dQgaindt=Mheateraircair(TheaterTroom).

Вычтите Температуру воздуха Помещения из Температуры воздуха Нагревателя.  Перепадом температур является текущая комнатная температура, вычтенная из постоянной температуры нагревателя (T_heater).

  1. Откройте подсистему Нагревателя.

  2. Кликните по модели и введите Сумму, чтобы отобразить список блоков с Суммой на имя. Кликните по блоку Sum в списке. Когда запрошено список знаков, введите |-+ поместить - и + входные порты на блоке и нажать Enter.

    Вертикальная панель (|) меняет положение входных портов путем вставления пробелов между портами. Вертикальная панель в начале списка знаков, помещает пробел наверху блока и переключает порты против часовой стрелки.

  3. Добавьте блок Constant, чтобы смоделировать постоянную температуру воздуха от нагревателя. Установите параметр блока Constant value на T_heater. Вы зададите значение T_heater в рабочем пространстве модели.

    Если блок отображает -C-, измените размер блока, чтобы отобразить имя переменной.

  4. Добавьте второй блок Inport, чтобы взять сигнал комнатной температуры из другой части вашей модели.

  5. Добавьте блок Gain в подсистему Нагревателя. Установите параметр Gain на M_heater_air*c_air. Вы зададите значения этих переменных в Рабочем пространстве модели.

  6. Соедините выход блока Sum к входу блока Gain.

  7. Добавьте метки в сигнальные линии, чтобы помочь проследить компоненты модели до уравнений и требований модели. Дважды кликните выше сигнальной линии и введите метку.

  8. Переименуйте блоки и соедините их как показано в фигуре.

Смоделируйте Переключатель Нагревателя.  Термостат отправляет сигнал включения - выключения, равный 1 (на) или 0 (прочь) к нагревателю. Поскольку входной сигнал является двоичным файлом, можно использовать блок Multiply, чтобы смоделировать переключатель.

  1. Удалите связь между блоками Out1 и In1. Выберите линию и нажмите Delete.

  2. Добавьте блок Multiply. Измените размер блока вертикально, чтобы выровнять блок в вашей схеме. Соедините блок In1 с первым входом блока и блок выход с блоком Out1. Переименуйте блоки как показано.

  3. Соедините выход от блока Gain до второго входа. Переместите все связанные блоки вместе. Чертите рамку выделения вокруг блоков, вы хотите переместить, и затем перетащить их к новому местоположению.

  4. Переименуйте блоки и добавьте метки в сигналы как показано в фигуре.

    Inport и блоки Outport создают порты, которые соединяют эту подсистему с другими подсистемами в вашей модели.

Задайте Параметры модели Нагревателя.  Можно задать параметры в рабочем пространстве MATLAB и затем ввести их имена в диалоговых окнах параметров блоков. Однако более устойчивый метод должен использовать Рабочее пространство модели Simulink, потому что значения переменных сохранены с моделью.

  1. В Редакторе Simulink, на вкладке Modeling, под Design, нажимают Model Workspace.

  2. В Model Explorer выберите Add> MATLAB Variable. В средней панели кликните по новой переменной Var и введите имя переменной для параметров блоков. В данном примере введите T_heater.

  3. Нажмите 0 значение и вводит значение для этой переменной. В данном примере введите 50 степени.

  4. Используя тот же подход, добавьте переменную M_heater_air со значением 3600 килограмм/час и c_air со значением 1005.4 джоуль/килограмм · градус.

Подготовьте Модель Нагревателя к Симуляции.  Настройте модель нагревателя для симуляции. Думайте об ожидаемом поведении и как можно протестировать то поведение с симуляцией. Когда термостат, который выход 1 (на), и принятие постоянной комнатной температуры 25, ожидаемый выход от усиления, является (50 – 25) x 3 600 × 1005.3 = 9,05 × 107. Проверьте этот выход путем выполнения модели с этими входными параметрами:

  • Нагреватель вкл\выкл сигнализирует что изменения от 0 к 1 после 4-го часа

  • Комнатная температура, постоянная в 25

  1. От подсистемы Нагревателя нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Можно изменить размер блока Heater как показано в фигуре.

    Заметьте, что блок Heater имеет второй входной порт и что каждый порт соответствует блоку Inport или блоку Outport в подсистеме.

  2. Добавьте блок Constant, чтобы представлять комнатную температуру и установить значение к 25 (градусы Цельсия). Добавьте, что блок Step для временного Нагревателя (вкл\выкл) сигнализирует. Установите Step time на 4.

  3. Добавьте блок Scope и соедините его с Heat Gain выход.

Симулируйте Модель Нагревателя и Оцените Результаты.  Используйте настройки симуляции по умолчанию, чтобы подтвердить ваш проект модели.

  1. Дважды кликните блок Scope, чтобы открыть его.

  2. Симулируйте модель. Нажмите кнопку Run.

    Когда симуляция запускается, Осциллограф строит результаты.

  3. Просмотрите трассировку осциллографа.

  4. Определите, является ли этот результат тем, что вы ожидали.

    Когда нагреватель вкл\выкл сигнализирует о щелчках от 0 до 1 в 4 часа, нагреватель выходные параметры 9.05 × 107 джоулей/час. Симуляция подтверждает ожидаемое поведение.

  5. Удалите Constant, Step, и Scope блокирует вас добавленный для тестирования компонента Нагревателя.

Компонент термостата модели

Можно смоделировать термостат, не используя системные уравнения. Требования для этого компонента:

  • Когда комнатная температура ниже установленной температуры, нагреватель работает, и управляющий сигнал равняется 1. Когда комнатная температура выше установленной температуры, управляющий сигнал равняется 0.

  • Чтобы избежать повторенного передвижения установленной температуры, термостат позволяет гистерезис 2 градусов Цельсия вокруг температурного сетбола. Если термостат работает, комнатная температура должна увеличиться на 2 градуса выше установленной температуры перед выключением. Если термостат выключен, комнатная температура должна опустить 2 градусов ниже установленной температуры перед включением.

Это модели компонента работа термостата, определяя, когда система отопления включена или прочь. Это содержит только один блок Relay, но логически представляет термостат в модели.

Вычтите Комнатную температуру Набора из Комнатной температуры.  Если комнатная температура набора теплее, чем комнатная температура, модель термостата отправляет “на” сигнале к модели нагревателя. Чтобы определить, если это верно, начните путем вычитания комнатной температуры из установленной температуры.

  1. Откройте подсистему Термостата. Добавьте блок Sum. Установите параметр List of signs на |+-.

  2. Соедините блок Inport с + вход блока Sum. Блок Inport устанавливает комнатную температуру.

  3. Добавьте второй блок Inport и соедините его с – вход блока Sum. Этот второй блок Inport является текущей комнатной температурой от подсистемы помещения. Переместите выходной порт в верхнюю часть блока. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Counterclockwise. Если вы хотите, можно изменить блок как показано в фигуре путем перетаскивания указателей.

  4. Переименуйте блоки как показано.

Сигнал Термостата модели.  Смоделируйте сигнал от термостата с гистерезисным значением 2 градусов Цельсия.

  1. В подсистеме Термостата добавьте блок Relay. Установите параметр Switch on point на 2, и параметр Switch off point к -2.

  2. Соедините и переименуйте блоки как показано в фигуре.

Подготовьте Модель Термостата к Симуляции.  Подготовьте подсистему Термостата к симуляции. Думайте об ожидаемом поведении термостата и как можно протестировать то поведение с симуляцией. Когда комнатная температура повышается выше установки термостата на 2 градуса, термостат, выход 0. Когда комнатная температура перемещается ниже установки термостата 2 градусами, термостат, выход равняется 1.

  1. От подсистемы Термостата нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер блока Thermostat как показано в фигуре.

    Заметьте, что подсистема Термостата теперь имеет второй входной порт. Каждый входной порт соответствует блоку Inport в подсистеме.

  2. Добавьте блок Constant для установленной температуры. Установите параметр Constant на 25 (градусы Цельсия).

  3. Добавьте блок Sine Wave, чтобы представлять температуру примерочной. Установите параметр Amplitude на 10, Bias к 20, и Frequency к 0.5. Эти параметры дают изменение выше и ниже температурного сетбола 25.

  4. Создайте и соедините Средство просмотра Scope в порте Heater. Смотрите Добавляет Средство просмотра Сигнала.

  5. Соедините эти два входных сигнала со Средством просмотра Осциллографа.

Симулируйте Модель Термостата и Оцените Результаты.  Используйте настройки симуляции по умолчанию, чтобы подтвердить ваш проект модели.

  1. Симулируйте модель. Когда симуляция запускается, Средство просмотра Осциллографа строит результаты.

  2. Откройте Scope, чтобы просмотреть трассировку осциллографа.

  3. Определите, является ли этот результат тем, что вы ожидали.

    Первоначально комнатная температура ниже установленной температуры, и реле работает. Когда комнатная температура достигает установленной температуры, реле продолжает работать до увеличений комнатной температуры еще 2 градусами. Симуляция подтверждает ожидаемое поведение.

Компонент помещения модели

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

Чтобы спроектировать подсистему помещения, используйте Уровень уравнения Потери тепла и уравнения Температуры Примерочной.

Температура Примерочной модели.  Уровень изменения температуры в комнате (dTroom/dt) задан уравнением

dTroomdt=1mroomaircair(dQgaindtdQlossdt).

Термин dQgain/dt сигнал от подсистемы Нагревателя.

  1. Откройте блок подсистемы Помещения. В подсистеме Помещения добавьте блок Sum. Установите параметр List of signs на |+–.

  2. Соедините In1 с + вход. Вход является притоком теплоты (dQgain/dt) от компонента нагревателя. – вход соединяется с потерей тепла (dQloss/dt) из комнаты.

  3. Добавьте блок Gain. Установите параметр Gain на 1/(m_room_air*c_air). Соедините выход блока Sum к входу блока Gain. Пометьте сигналы как показано в фигуре. Точечные сигнальные линии являются сигналами, которые вы соедините позже.

Комнатная температура модели.  Выход блока Gain является изменением при комнатной температуре (dTroom/dt). Получить текущую комнатную температуру (Troom), интегрируйте сигнал.

  1. Добавьте блок Integrator. Установите параметр Initial condition на Troom_IC.

  2. Соедините выход блока Integrator к Out1 как показано.

Потеря тепла модели Через Стены и Windows.  Это уравнение является уровнем тепловой энергетической потери через стены и окна:

dQlossdt=(TroomToutside)R.

  1. В подсистеме Помещения добавьте блок Sum. Установите параметр List of signs на |+–. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Flip Block.

  2. Соедините Troom с блоком Sum. Кликните по сигнальной линии для Troom и + вход на блоке Sum.

  3. Добавьте другой блок Inport и соедините его с – вход блока Sum. Переименуйте его к Наружной температуре.

  4. Добавьте другой блок Gain. Установите параметр Gain на 1/R_equivalent. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Flip Block.

  5. Соедините блоки как показано в фигуре.

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

  1. В Редакторе Simulink, на вкладке Modeling, под Design, нажимают Model Workspace.

  2. В Model Explorer выберите Add> MATLAB Variable.

  3. В средней панели кликните по новой переменной Var и введите имя m_room_air. На правой панели введите значение 1470 (килограммы).

  4. Добавьте переменные T_roomIC= 20 (градусы Цельсия) и R_equivalent = 4.329e-7 час· степень/джоуль).

Подготовьте Модель Помещения к Симуляции.  Подготовьте подсистему Помещения к симуляции. Думайте об ожидаемом поведении и как можно протестировать то поведение с симуляцией. Когда нагреватель выключен (Приток теплоты = 0), и начальная температура комнаты (20) выше наружной температуры (10), потеря тепла должна продолжиться, пока комнатная температура не равна наружной температуре.

  1. От подсистемы Помещения нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер Комнатного блока как показано в фигуре.

    Комнатный блок теперь имеет второй входной порт. Каждый входной порт соответствует блоку Inport в подсистеме.

  2. Добавьте блок Constant и соедините его с входом Heat Gain. Установите параметр Constant value на 0 (градусы Цельсия), чтобы означать, что нагреватель выключен.

  3. Добавьте другой блок Constant и соедините его с входом Outside Temperature. Установите параметр Constant value на 10 (градусы Цельсия).

  4. Добавьте и соедините блок Scope, чтобы просмотреть температуру примерочной.

Симулируйте модель помещения и оцените результаты

  1. В панели инструментов, набор Stop Time к 20.

  2. Симулируйте модель.

  3. Откройте Осциллограф и нажмите кнопку Autoscale, чтобы просмотреть трассировку осциллографа.

  4. Определите, является ли этот результат тем, что вы ожидали.

    Комнатная температура запускается в начальном наборе комнатной температуры в блоке Integrator. Поскольку приток теплоты 0, затухания сигнала к наружной температуре (10). Симуляция подтверждает ожидаемое поведение.

Подготовьте Модель Помещения к Второй Симуляции.  Установите постоянную наружную температуру на значение выше начальной комнатной температуры (20).

В блоке Constant, который соединяется с входом Outside Temperature, устанавливает Constant value на 30 (градусы Цельсия).

Симулируйте модель и оцените результаты

  1. Симулируйте модель.

  2. Откройте Осциллограф и нажмите кнопку Autoscale, чтобы просмотреть трассировку осциллографа.

  3. Определите, является ли этот результат тем, что вы ожидали.

    Комнатная температура запускается в первоначально установленная температура 20, но с нагревателем прочь (приток теплоты = 0) комнатная температура повышается до наружной температуры — поведение, которое модель явным образом не задавала и может быть рассмотрена неожиданной.

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

Интегрируйте обогревающую модель дома

Соедините компоненты модели, добавьте реалистический вход, и затем симулируйте поведение модели в зависимости от времени, чтобы подтвердить проект модели.

Интегрируйте компоненты нагревателя и термостата

Чтобы симулировать подсистемы нагревателя и термостата без подсистемы Помещения, вам нужен сигнал для температуры примерочной. Используйте блок Constant, чтобы установить температуру термостата и блок Sine Wave для реалистического сигнала наружной температуры.

Подготовьте модель к симуляции

  1. Откройте свою модель с завершенными подсистемами. Удалите любые блоки, которые вы добавили, чтобы протестировать отдельные компоненты.

  2. Откройте подсистему Помещения. Дважды кликните блок Inport пометил Heat Gain. В диалоговом окне блока Inport, набор Port number к 2. Порт Heat Gain перемещается в нижнюю часть подсистемы Помещения.

  3. Соединитесь Нагреватель (вкл\выкл) сигнализируют от подсистемы Термостата о выходе к входу подсистемы Нагревателя.

  4. Добавьте блок Constant, чтобы установить комнатную температуру термостата. Установите значение Constant к 20 (градусы Цельсия).

  5. Добавьте блок Sine Wave, чтобы представлять температуру примерочной. Установите параметры Amplitude на 10 (градусы Цельсия), Bias к 15, и Frequency к 0.5.

  6. Соедините блоки как показано в фигуре.

  7. Добавьте средство просмотра Осциллографа и добавьте выходные сигналы Нагревателя, Постоянного, и блоки Sine wave. Смотрите Добавляет Средство просмотра Сигнала.

  8. На окне средства просмотра Осциллографа, в нажатии кнопки Configuration Properties стрела и затем нажимают значок Layout. Выберите два поля. Второй пустой график появляется ниже первого.

  9. От панели инструментов нажмите кнопку Signal Selector. Выберите Display 1. Установите флажок Heater.

  10. Выберите Display 2. Установите флажки Constant и Sine Wave.

Симулируйте Модель и Оцените Результаты.  Симулируйте модель с помощью времени остановки по умолчанию 10.

  1. Симулируйте модель.

  2. Откройте Средство просмотра Осциллографа и просмотрите результаты симуляции. Главный график является усилением нагревателя, в то время как более низкий график показывает температуру примерочной, смоделированную с синусоидой.

  3. Определите, является ли этот результат тем, что вы ожидали.

    От приблизительно 0 до 1,5 часов включен нагреватель. Приток теплоты не является постоянным, но изменяется, потому что приток теплоты является функцией различия между температурой воздуха нагревателя и температурой воздуха помещения. От 1,5 до 5,6 часов, выключен нагреватель, и приток теплоты (главный график) является нулем. Симуляция подтверждает ожидаемое поведение.

Интегрируйте компонент помещения

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

Подготовьте модель к симуляции

  1. Откройте свою модель с завершенными подсистемами. Удалите любые блоки, которые вы добавили, чтобы протестировать отдельные компоненты.

  2. Соедините подсистемы как показано.

  3. Добавьте блок Constant для установки комнатной температуры. Установите параметр Constant value на 20 (градусы Цельсия).

  4. Добавьте блок a Sine Wave, чтобы представлять изменяющуюся наружную температуру. Установите Amplitude на 5, Bias к 12, Frequency к 2*pi/24, и Phase к 180.

  5. Добавьте блок Scope Viewer, чтобы просмотреть результаты симуляции.

  6. В Средстве просмотра Сигнала нажмите кнопку Signal Selector. В Селекторном диалоговом окне Сигнала и на левой панели, выберите иерархию топ-модели. На правой панели выберите Room и Синусоидальные сигналы.

Симулируйте модель и оцените результаты

  1. Установите время остановки симуляции на 24 (часы), чтобы представлять день.

  2. Симулируйте модель.

  3. Откройте Средство просмотра Осциллографа и просмотрите результаты.

  4. Определите, совпадает ли результат симуляции с вашим ожиданием.

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

  5. Можно сравнить результаты с моделью в качестве примера. В Окне Команды MATLAB войти

    open_system(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling_prepared'))
    или нажмите ex_househeat_modeling_prepared.slx.

Совершенствуйте Параметры модели.  С моделями Simulink можно в интерактивном режиме изменить параметры модели и затем наблюдать изменения в поведении модели. Этот подход позволяет вам оценивать свою модель быстро и подтверждать ваш проект.

Измените наружную температуру в блоке Sine Wave так, чтобы верхние значения были выше установленной температуры.

  1. В диалоговом окне Sine Wave, набор Amplitude к 5 и Bias к 19. Эти настройки показывают то, что происходит, когда наружная температура выше, чем в температуре.

  2. Симулируйте модель и просмотрите результаты.

  3. Определите, совпадают ли результаты с вашими ожиданиями.

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

Внешний интерфейс модели

Смоделируйте внешний интерфейс для дальнейшего тестирования и возможного применения в большей модели. В Simulink вы моделируете внешний интерфейс с помощью блоков Outport и Inport.

  1. Добавьте блоки Inport, чтобы считать данные из наружной температуры и установленной температуры термостата в вашу модель.

  2. Добавьте блоки Outport, чтобы соединить наружную температуру и комнатную температуру к большей модели или визуализировать результаты.

Задайте физические единицы измерения

Путем определения физических единиц измерения для сигналов модели вы гарантируете непротиворечивость вычислений через компоненты модели. В Simulink вы задаете модули сигнала через блоки Outport и Inport.

  1. Дважды кликните In1 блокируйтесь, чтобы открыть диалоговое окно Block Parameters. Выберите вкладку Signal Attributes.

  2. В поле Unit начните вводить degree. Из списка символов и имен, выберите °C degree_Celsius.

    Для остающегося температурного Inport и блоков Outport, установленных параметр Unit to °C degree_Celsius.

  3. Дисплеи на портах блока. На вкладке Debug выберите Information Overlays> Port Units.

  4. Дважды кликните блок Heater Subsystem. Дважды кликните блок Heat Gain Outport, чтобы открыть диалоговое окно Block Parameters. Выберите вкладку Signal Attributes.

  5. В поле Unit начните вводить joule/hour. Из списка символов и имен, выберите joule/h joule/hour.

  6. Обновите модель. Нажмите Ctrl+D.

Ваш следующий шаг должен проверить правильность модели путем сравнения симуляций с действительными системными данными.

Подготовьтесь к симуляции

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

Чтобы загрузить законченную модель в качестве примера, в Окне Команды MATLAB, входят

copyfile(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_measured_data.mat'))
open_system(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_simulation_prepared'))

Проверьте, что симуляция представляет поведение системы, которую вы смоделировали. Начните путем экспериментального измерения физических характеристик системы, которые имеют сопоставимые сигналы в модели:

  • Соберите данные от физической системы

  • Подготовьте модель к симуляции

Соберите и отобразите системные данные на графике

Измерьте динамические характеристики от фактической системы отопления дома. Вы будете использовать результаты измерений с симуляциями модели, чтобы проверить поведение и точность вашей модели.

  1. Измерьте внутренние и внешние температуры дома каждые 6 минут в течение 24 часов.

  2. Введите результаты измерений в рабочий лист Microsoft® Excel® или откройте электронную таблицу в качестве примера. В Окне Команды MATLAB войти

    winopen(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_measured_data.xls'))

  3. Рассмотрите график результатов измерений. Внутренние температурные данные показывают температурные скачки, когда нагреватель горячего воздуха включает. Этот шаблон типичен для системы отопления горячего воздуха.

Подготовьте модель к симуляции

Подготовьте модель к симуляции путем добавления внешнего интерфейса для сигналов элемента управления вводом и ввода данных.

  1. Используйте модель, которую вы создали в учебной Системе отопления Дома Модели, или откройте модель в качестве примера. В Окне Команды MATLAB войти

    open_system(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))

  2. Замените блок Inport In2 с блоком Constant и установленный параметр Constant на 20. Блок Constant устанавливает температуру термостата.

  3. Добавьте блок Inport. Установите Port number на 1. Это действие также устанавливает Port number сигнала наружной температуры к 2.

  4. Переименуйте первый блок Inport к Inside Temperature. Переименуйте второй блок Inport к Outside Temperature.

  5. Добавьте блок Outport и соедините его с первым блоком Inport (В Температуре). Блоки Outport необходимы для сохранения (логгирования) сигналов. Установите Port number на 1.

Запустите и оцените симуляцию

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

  • Importdata

  • Запустите симуляцию

  • Оцените результат симуляции

  • Измените параметры модели

  • Повторно выполните симуляцию

Импортируйте данные с корневым отображением Inport

Можно использовать инструмент Root Inport Mapper, чтобы принести измеренные данные сигнала из электронной таблицы Excel в модель Simulink.

  1. Откройте любой блок Inport. Нажмите кнопку Connect Input, чтобы открыть Корневой Картопостроитель Inport.

  2. На панели инструментов нажмите From Spreadsheet.

  3. В диалоговом окне From Spreadsheet кликните по кнопке обзора. Просмотрите к и выберите файл matlabroot\help\toolbox\simulink\examples\ex_househeat_measured_data.xls. Нажмите Open. Нажмите OK, чтобы импортировать электронную таблицу.

  4. От Signals выпадающий список выберите Preview Signals.

  5. На левой стороне расширьте структурный вид Sheet1. Установите флажки Inside Temperature и Outside Temperature.

  6. Нажмите Close Signal Preview.

  7. На левой стороне выберите Sheet1. Столбец Scenario Signal показывает два сигнала из электронной таблицы Excel и значка, указывающего, что сигналы не сопоставлены.

  8. На панели инструментов выберите опцию Port Order. От Options выпадающий список установите флажок Update Model.

  9. Из выпадающего списка Map to Model выберите Map Unconnected. Сводные данные отображения показывают сигналы из электронной таблицы Excel, сопоставленной с блокировками порта Input.

  10. Нажмите Mark for Simulation. Сводные данные отображения показывают Sheet1 отмечен для симуляции и Dataset объект создается в рабочем пространстве MATLAB.

  11. Сохраните данные сигнала в MAT-файле. В Командном Окне MATLAB введите

    save('ex_househeat_measured_data.mat', 'Sheet1')

Сконфигурируйте модель, чтобы загрузить данные сигнала

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

  1. Из Редактора Simulink, на вкладке Modeling, выбирают Model Settings> Model Properties, чтобы открыть диалоговое окно Model Properties.

  2. Выберите вкладку Callbacks.

  3. В разделе Model callbacks выберите PreLoadFcn.

  4. В поле Model pre-load function войти

    load('ex_househeat_measured_data.mat')

  5. Нажмите OK.

Сконфигурируйте модель, чтобы сохранить результаты симуляции

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

  1. В модели, на вкладке Modeling, нажимают Model Settings.

  2. На левой панели выберите Data Import/Export.

  3. На правой панели снимите флажки Time и Output.

  4. Установите флажок Signal logging.

  5. Установите флажок Record logged workspace data in Simulation Data Inspector.

  6. Нажмите OK.

Выберите Signals to Save

Идентифицируйте сигналы отобразиться в Инспекторе Данных моделирования, назвать сигналы, если они без имени, и устанавливают параметры логгирования.

  1. Щелкните правой кнопкой по Внутренней Температурной сигнальной линии и выберите Properties.

  2. В поле Signal name введите Measured Room Temperature. Установите флажок Log signal data. Значок логгирования появляется выше сигнальной линии.

  3. Назовите и выберите логгирование для этих сигналов.

    Местоположение сигналаИмя сигнала
    Наружная температура от выходного порта 2.Measured Outside Temperature
    Комнатная температура от выходного порта подсистемы ПомещенияRoom Temperature

Запустите симуляцию

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

  1. Используйте модель, которую вы подготовили к симуляции, или откройте модель в качестве примера. В Окне Команды MATLAB войти

    open_system(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_simulation_prepared'))

  2. На Панели инструментов Simulink, набор Stop Time к 24 часы.

  3. Нажмите кнопку Run.

    Симуляция модели запускается от 0.0 к 24.0 часы с помощью данных о наружной температуре из root import block, как введено.

Сравните результаты симуляции с измеренными системными данными

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

  1. На Панели инструментов Simulink нажмите кнопку Simulation Data Inspector.

    Отдельный запуск появляется в панели Runs каждый раз, когда вы симулируете модель.

  2. Установите все флажки сигнала. График показывает график каждого сигнала, который вы выбираете.

    Главный сигнал является Измеренной Комнатной температурой. Средний сигнал является Измеренной Наружной температурой. Нижним сигналом является симулированная Комнатная температура.

Определите изменения в модели

Одно очевидное изменение в модели является гистерезисом термостата. Симулированная комнатная температура колеблется 18–22 градуса вокруг температурного сетбола 20 градусов. Измеренная комнатная температура колеблется 20–25 градусов с тем же сетболом.

  1. Откройте блок Relay в подсистеме Термостата.

  2. Измените Switch on point от 2 к 0 потому что различие между комнатной температурой и сетболом 0.

  3. Измените Switch off point от -2 к -5. Когда комнатная температура является 5 градусами выше сетбола, вы хотите выключить нагреватель. Сетбол является 5 градусами ниже комнатной температуры.

Сравните результаты между симуляциями

Используйте Инспектора Данных моделирования, чтобы сравнить различия между двумя симуляциями, которые используют различные параметры модели. Это сравнение показывает, как изменения улучшают точность вашей модели.

  1. Симулируйте модель.

  2. Откройте инспектора данных моделирования.

  3. Расширьте список регистрируемых сигналов путем выбора стрелки влево запуска. Для Run1 выберите Measured Outside Temperature и Measured Room Temperature флажки. Для Run2 выберите Room Temperature флажок.

  4. Рассмотрите сигналы. Минимальные и максимальные значения для симулированной комнатной температуры теперь совпадают с измеренными значениями комнатной температуры.