Этот пример показывает, как смоделировать и симулировать динамическую систему с помощью программного обеспечения Simulink®. Модель для системы отопления, которая включает нагреватель (модель объекта управления), которой управляет термостат (модели контроллеров), чтобы нагреть комнату (модель среды) к установленной температуре. В то время как это - простая модель, процессы для создания структуры модели и проекта алгоритма являются теми же процессами, которые вы будете использовать в более сложных моделях.
Чтобы рассмотреть завершенную модель, в Командном окне MATLAB®, входят
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))
Моделирование начинается с завершения задач, которые находятся вне программной среды Simulink. Требования модели Define и выводят математические уравнения. Соберите данные для параметров модели и измерений данных о выходном сигнале, чтобы подтвердить результаты симуляции.
Прежде, чем спроектировать модель, рассмотрите свои цели и требования. Цели по моделированию системы отопления дома:
Наблюдайте, как изменяющаяся наружная температура влияет на внутреннюю температуру.
Исследуйте эффект изменяющихся параметров на внутренней температуре.
Если вы изучаете свои требования моделирования, можно начать идентифицировать компоненты системы.
Система отопления дома в этом примере задает систему отопления и ее отношение в комнату. Это включает:
Тепловые характеристики дома
Тепловые характеристики нагревателя
Термостат, чтобы управлять нагревателем
Наружная среда
Внутренняя среда
Термостат регулярно контролирует комнатную температуру и включает или выключает нагреватель, в зависимости от различия между установленной температурой и комнатной температурой.
Модель для этой системы включает три компонента: нагреватель, термостат и комната.
Три зависящих от времени переменные задают теплообмен в комнате:
Температура комнаты ()
Приток теплоты: Тепловая энергия передается от нагревателя () в комнату
Потеря тепла: Тепловая энергия передается из комнаты () к наружной среде
Дифференциальное уравнение задает отношение между этими переменными, но поскольку теплопередача задана в терминах изменения температуры, только комнатная температура является переменной состояния.
Температура воздуха в нагревателе является постоянной в Theater, и комнатной температурой является Troom. Тепловое энергетическое усиление в комнату конвекцией нагретого воздуха от нагревателя с теплоемкостью cair. Приток теплоты для массы воздуха в нагревателе, , пропорционально перепаду температур между нагревателем и комнатой:
Уровень теплового энергетического усиления от нагревателя
Вентилятор подышал воздухом помещения и передает его через нагреватель и назад в комнату. Постоянная сумма воздуха, , потоки через нагреватель в единицу времени, и заменяющий с той константой упрощает уравнение до
Тепловая энергетическая потеря от комнаты проводимостью через стенки и окна, и пропорциональна перепаду температур между комнатной температурой и наружной температурой:
Уровень тепловой энергетической потери
Заменяя с где тепловое сопротивление, упрощает уравнение до
Задайте уровень изменения температуры в комнате путем вычитания уровня потери тепла от уровня притока теплоты:
Большинство значений параметров, необходимых для обогревающей модели дома, публикуется в стандартных таблицах свойства. Скорость потока жидкости для нагревателя из таблицы данных производителя.
Перечислите переменные и коэффициенты от ваших уравнений и проверки на размерную непротиворечивость между модулями. Поскольку модуль времени для модели является часами, преобразуйте опубликованные значения для теплового свойства материалов от модулей секунд к часам.
Переменные уравнения и Константы. Можно использовать постоянные имена и значения в этой таблице при создавании модели.
Переменная уравнения или коэффициент | Описание | Модули |
---|---|---|
A | Область стенки или окна surface | квадратный метр |
D | Глубина стенки или окна | метр |
Q | Тепловая энергия передается | джоуль |
dQ/dt | Уровень тепловой энергии передается | джоуль/час |
k | Теплопроводность; свойство материала провести теплопередачу | джоуль/метр · час· градус |
r | Тепловое удельное сопротивление; свойство материала сопротивляться теплопередаче | метр · час· степень/джоуль |
R | Тепловое сопротивление
| час· степень/джоуль |
m | Масса воздуха в комнате или нагревателе Масса нагревателя | килограмм |
dm/dt | Уровень массы воздуха, проходящей через нагреватель | килограмм/час |
M | Постоянный уровень массы воздуха, проходящей через нагреватель | килограмм/час |
c | Удельная теплоемкость | джоуль/килограмм · градус |
Theater | Постоянная температура воздуха от нагревателя | степень Цельсия |
Troom | Начальная температура воздуха комнаты | степень Цельсия |
Смоделируйте структуру верхнего уровня с компонентами это включая интерфейсы для передающих данных между отдельными компонентами. Ваша модель должна быть организована в иерархическую структуру, которая соответствует компонентам системы.
В верхнем уровне обогревающей модели дома используйте блоки Subsystem, чтобы организовать вашу модель и создать структуру. Модель включает Термостат подсистем, Нагреватель и Комнату.
Откройте новую модель Simulink: Откройте Новую Модель.
В меню Display снимите флажок Hide Automatic Names.
Откройте браузер библиотеки: Откройте браузер библиотеки Simulink
Добавьте блоки Subsystem. Перетащите три блока Subsystem от библиотеки Ports & Subsystems до новой модели в Редакторе Simulink.
Откройте блок Subsystem. Дважды кликните блок.
Каждый новый блок Subsystem содержит один Inport (In1) и один блок Outport (Out1). Эти блоки задают интерфейс сигнала со следующим более высоким уровнем в иерархии модели.
Каждый блок Inport создает входной порт на блоке Subsystem, и каждый блок Outport создает выходной порт. Добавьте больше блоков для дополнительных сигналов ввода и вывода.
На Панели инструментов Simulink нажмите кнопку Navigate Up To Parent, чтобы возвратиться к верхнему уровню. Переименуйте блоки Subsystem как показано. Дважды кликните имя блока и введите новое имя.
Для каждого компонента смоделируйте уравнения, задайте параметры, подготовьте подсистему к симуляции и симулируйте, чтобы проверить ее поведение.
Давайте запустимся путем моделирования компонента системы нагревателя. Модель нагревателя:
Измеряет текущую температуру из комнаты и управляющий сигнал от термостата как входные параметры
Вычисляет приток теплоты от нагревателя
Выводит приток теплоты, когда управляющий сигнал включен
Чтобы смоделировать подсистему нагревателя, смоделируйте уровень уравнения притока теплоты с блоками Simulink:
Вычтите Температуру воздуха Помещения из Температуры воздуха Нагревателя. Перепадом температур является текущая комнатная температура, вычтенная из постоянной температуры нагревателя (T_heater
).
Откройте подсистему Нагревателя.
Кликните по модели и введите Сумму, чтобы отобразить список блоков с Суммой на имя. Кликните по блоку Sum в списке. Когда запрошено список знаков, введите |-+
поместить - и + входные порты на блоке и нажать Enter.
Вертикальная панель (|
) меняет положение входных портов путем вставления пробелов между портами. Вертикальная панель в начале списка знаков, помещает пробел наверху блока и переключает порты против часовой стрелки.
Добавьте блок Constant, чтобы смоделировать постоянную температуру воздуха от нагревателя. Установите параметр блока Constant value на T_heater
. Вы зададите значение T_heater
в рабочем пространстве модели.
Если блок отображает -C-
, измените размер блока, чтобы отобразить имя переменной.
Добавьте второй блок Inport, чтобы взять сигнал комнатной температуры из другой части вашей модели.
Добавьте блок Gain в подсистему Нагревателя. Установите параметр Gain на M_heater_air*c_air
. Вы зададите значения этих переменных в Рабочем пространстве модели.
Соедините выход блока Sum к входу блока Gain.
Добавьте метки в сигнальные линии, чтобы помочь проследить компоненты модели до уравнений и требований модели. Дважды кликните выше сигнальной линии и введите метку.
Переименуйте блоки и соедините их как показано в фигуре.
Смоделируйте Переключатель Нагревателя. Термостат отправляет сигнал включения - выключения, равный 1 (на) или 0 (прочь) к нагревателю. Поскольку входной сигнал является двоичным файлом, можно использовать блок Multiply, чтобы смоделировать переключатель.
Удалите связь между блоками Out1 и In1. Выберите линию и нажмите Delete.
Добавьте блок Multiply. Измените размер блока вертикально, чтобы выровнять блок в вашей схеме. Соедините блок In1 с первым входом блока и блок выход с блоком Out1. Переименуйте блоки как показано.
Соедините выход от блока Gain до второго входа. Переместите все связанные блоки вместе. Чертите рамку выделения вокруг блоков, вы хотите переместить, и затем перетащить их к новому местоположению.
Переименуйте блоки и добавьте метки в сигналы как показано в фигуре.
Inport и блоки Outport создают порты, которые соединяют эту подсистему с другими подсистемами в вашей модели.
Задайте Параметры модели Нагревателя. Можно задать параметры в рабочем пространстве MATLAB и затем ввести их имена в диалоговых окнах параметров блоков. Однако более устойчивый метод должен использовать Рабочее пространство модели Simulink, потому что значения переменных сохранены с моделью.
В Редакторе Simulink, на вкладке Modeling, под Design, нажимают Model Workspace.
В Model Explorer выберите Add> MATLAB Variable. В средней панели кликните по новой переменной Var
и введите имя переменной для параметров блоков. В данном примере введите T_heater
.
Нажмите 0
значение и вводит значение для этой переменной. В данном примере введите 50
степени.
Используя тот же подход, добавьте переменную M_heater_air
со значением 3600
килограмм/час и c_air
со значением 1005.4
джоуль/килограмм · градус.
Подготовьте Модель Нагревателя к Симуляции. Настройте модель нагревателя для симуляции. Думайте об ожидаемом поведении и как можно протестировать то поведение с симуляцией. Когда термостат, который выход 1 (на), и принятие постоянной комнатной температуры 25, ожидаемый выход от усиления, является (50 – 25) x 3 600 × 1005.3 = 9,05 × 107. Проверьте этот выход путем выполнения модели с этими входными параметрами:
Нагреватель вкл\выкл сигнализирует что изменения от 0
к 1
после 4-го часа
Комнатная температура, постоянная в 25
От подсистемы Нагревателя нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Можно изменить размер блока Heater как показано в фигуре.
Заметьте, что блок Heater имеет второй входной порт и что каждый порт соответствует блоку Inport или блоку Outport в подсистеме.
Добавьте блок Constant, чтобы представлять комнатную температуру и установить значение к 25
(градусы Цельсия). Добавьте, что блок Step для временного Нагревателя (вкл\выкл) сигнализирует. Установите Step time на 4
.
Добавьте блок Scope и соедините его с Heat Gain выход.
Симулируйте Модель Нагревателя и Оцените Результаты. Используйте настройки симуляции по умолчанию, чтобы подтвердить ваш проект модели.
Дважды кликните блок Scope, чтобы открыть его.
Симулируйте модель. Нажмите кнопку Run.
Когда симуляция запускается, Осциллограф строит результаты.
Просмотрите трассировку осциллографа.
Определите, является ли этот результат тем, что вы ожидали.
Когда нагреватель вкл\выкл сигнализирует о щелчках от 0 до 1 в 4 часа, нагреватель выходные параметры 9.05 × 107 джоулей/час. Симуляция подтверждает ожидаемое поведение.
Удалите Constant, Step, и Scope блокирует вас добавленный для тестирования компонента Нагревателя.
Можно смоделировать термостат, не используя системные уравнения. Требования для этого компонента:
Когда комнатная температура ниже установленной температуры, нагреватель работает, и управляющий сигнал равняется 1. Когда комнатная температура выше установленной температуры, управляющий сигнал равняется 0.
Чтобы избежать повторенного передвижения установленной температуры, термостат позволяет гистерезис 2 градусов Цельсия вокруг температурного сетбола. Если термостат работает, комнатная температура должна увеличиться на 2 градуса выше установленной температуры перед выключением. Если термостат выключен, комнатная температура должна опустить 2 градусов ниже установленной температуры перед включением.
Это модели компонента работа термостата, определяя, когда система отопления включена или прочь. Это содержит только один блок Relay, но логически представляет термостат в модели.
Вычтите Комнатную температуру Набора из Комнатной температуры. Если комнатная температура набора теплее, чем комнатная температура, модель термостата отправляет “на” сигнале к модели нагревателя. Чтобы определить, если это верно, начните путем вычитания комнатной температуры из установленной температуры.
Откройте подсистему Термостата. Добавьте блок Sum. Установите параметр List of signs на |+-
.
Соедините блок Inport с + вход блока Sum. Блок Inport устанавливает комнатную температуру.
Добавьте второй блок Inport и соедините его с – вход блока Sum. Этот второй блок Inport является текущей комнатной температурой от подсистемы помещения. Переместите выходной порт в верхнюю часть блока. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Counterclockwise. Если вы хотите, можно изменить блок как показано в фигуре путем перетаскивания указателей.
Переименуйте блоки как показано.
Сигнал Термостата модели. Смоделируйте сигнал от термостата с гистерезисным значением 2 градусов Цельсия.
В подсистеме Термостата добавьте блок Relay. Установите параметр Switch on point на 2
, и параметр Switch off point к -2
.
Соедините и переименуйте блоки как показано в фигуре.
Подготовьте Модель Термостата к Симуляции. Подготовьте подсистему Термостата к симуляции. Думайте об ожидаемом поведении термостата и как можно протестировать то поведение с симуляцией. Когда комнатная температура повышается выше установки термостата на 2 градуса, термостат, выход 0. Когда комнатная температура перемещается ниже установки термостата 2 градусами, термостат, выход равняется 1.
От подсистемы Термостата нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер блока Thermostat как показано в фигуре.
Заметьте, что подсистема Термостата теперь имеет второй входной порт. Каждый входной порт соответствует блоку Inport в подсистеме.
Добавьте блок Constant для установленной температуры. Установите параметр Constant на 25
(градусы Цельсия).
Добавьте блок Sine Wave, чтобы представлять температуру примерочной. Установите параметр Amplitude на 10
, Bias к 20
, и Frequency к 0.5
. Эти параметры дают изменение выше и ниже температурного сетбола 25.
Создайте и соедините Средство просмотра Scope в порте Heater. Смотрите Добавляет Средство просмотра Сигнала.
Соедините эти два входных сигнала со Средством просмотра Осциллографа.
Симулируйте Модель Термостата и Оцените Результаты. Используйте настройки симуляции по умолчанию, чтобы подтвердить ваш проект модели.
Симулируйте модель. Когда симуляция запускается, Средство просмотра Осциллографа строит результаты.
Откройте Scope, чтобы просмотреть трассировку осциллографа.
Определите, является ли этот результат тем, что вы ожидали.
Первоначально комнатная температура ниже установленной температуры, и реле работает. Когда комнатная температура достигает установленной температуры, реле продолжает работать до увеличений комнатной температуры еще 2 градусами. Симуляция подтверждает ожидаемое поведение.
Входные параметры к компоненту помещения являются тепловым потоком от компонента нагревателя и внешней температуры воздуха. Компонент помещения использует эти входные параметры, чтобы вычислить потерю тепла через стенки, потерю тепла через окна и текущую комнатную температуру.
Чтобы спроектировать подсистему помещения, используйте Уровень уравнения Потери тепла и уравнения Температуры Примерочной.
Температура Примерочной модели. Уровень изменения температуры в комнате (dTroom/dt) задан уравнением
Термин dQgain/dt
сигнал от подсистемы Нагревателя.
Откройте блок подсистемы Помещения. В подсистеме Помещения добавьте блок Sum. Установите параметр List of signs на |+–
.
Соедините In1 с + вход. Вход является притоком теплоты (dQgain/dt
) от компонента нагревателя. – вход соединяется с потерей тепла (dQloss/dt
) из комнаты.
Добавьте блок Gain. Установите параметр Gain на 1/(m_room_air*c_air)
. Соедините выход блока Sum к входу блока Gain. Пометьте сигналы как показано в фигуре. Точечные сигнальные линии являются сигналами, которые вы соедините позже.
Комнатная температура модели. Выход блока Gain является изменением при комнатной температуре (dTroom/dt
). Получить текущую комнатную температуру (Troom
), интегрируйте сигнал.
Добавьте блок Integrator. Установите параметр Initial condition на Troom_IC
.
Соедините выход блока Integrator к Out1 как показано.
Потеря тепла модели Через Стенки и Windows. Это уравнение является уровнем тепловой энергетической потери через стенки и окна:
В подсистеме Помещения добавьте блок Sum. Установите параметр List of signs на |+–
. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Flip Block.
Соедините Troom
с блоком Sum. Кликните по сигнальной линии для Troom
и + вход на блоке Sum.
Добавьте другой блок Inport и соедините его с – вход блока Sum. Переименуйте его в Наружную температуру.
Добавьте другой блок Gain. Установите параметр Gain на 1/R_equivalent
. Щелкните правой кнопкой по блоку и выберите Rotate & Flip> Flip Block.
Соедините блоки как показано в фигуре.
Задайте Параметры модели Помещения. Можно задать параметры в рабочем пространстве MATLAB и затем ввести их имена в диалоговых окнах параметров блоков. Однако более устойчивый метод должен использовать Рабочее пространство модели Simulink, которое сохраняет значения параметров с моделью.
В Редакторе Simulink, на вкладке Modeling, под Design, нажимают Model Workspace.
В Model Explorer выберите Add> MATLAB Variable.
В средней панели кликните по новой переменной Var
и введите имя m_room_air
. На правой панели введите значение 1470
(килограммы).
Добавьте переменные T_roomIC
= 20 (градусы Цельсия) и
R_equivalent
= 4.329e-7
час· степень/джоуль).
Подготовьте Модель Помещения к Симуляции. Подготовьте подсистему Помещения к симуляции. Думайте об ожидаемом поведении и как можно протестировать то поведение с симуляцией. Когда нагреватель выключен (Приток теплоты = 0), и начальная температура комнаты (20) выше наружной температуры (10), потеря тепла должна продолжиться, пока комнатная температура не равна наружной температуре.
От подсистемы Помещения нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер Комнатного блока как показано в фигуре.
Комнатный блок теперь имеет второй входной порт. Каждый входной порт соответствует блоку Inport в подсистеме.
Добавьте блок Constant и соедините его с входом Heat Gain. Установите параметр Constant value на 0
(градусы Цельсия), чтобы означать, что нагреватель выключен.
Добавьте другой блок Constant и соедините его с входом Outside Temperature. Установите параметр Constant value на 10
(градусы Цельсия).
Добавьте и соедините блок Scope, чтобы просмотреть температуру примерочной.
Симулируйте модель помещения и оцените результаты
В панели инструментов, набор Stop Time к 20
.
Симулируйте модель.
Откройте Осциллограф и нажмите кнопку Autoscale, чтобы просмотреть трассировку осциллографа.
Определите, является ли этот результат тем, что вы ожидали.
Комнатная температура запускается в начальном наборе комнатной температуры в блоке Integrator. Поскольку приток теплоты 0, затухания сигнала к наружной температуре (10). Симуляция подтверждает ожидаемое поведение.
Подготовьте Модель Помещения к Второй Симуляции. Установите постоянную наружную температуру на значение выше начальной комнатной температуры (20).
В блоке Constant, который соединяется с входом Outside Temperature, устанавливает Constant value на 30
(градусы Цельсия).
Симулируйте модель и оцените результаты
Симулируйте модель.
Откройте Осциллограф и нажмите кнопку Autoscale, чтобы просмотреть трассировку осциллографа.
Определите, является ли этот результат тем, что вы ожидали.
Комнатная температура запускается в первоначально установленная температура 20, но с нагревателем прочь (приток теплоты = 0) комнатная температура повышается до наружной температуры — поведение, которое модель явным образом не задавала и может быть рассмотрена неожиданной.
Уравнение, которое моделирует потерю тепла также, моделирует приток теплоты, когда наружная температура выше внутренней комнатной температуры. В то время как модель явным образом не задавала это поведение, когда нагреватель выключен, результат целесообразен физически.
Соедините компоненты модели, добавьте реалистический вход, и затем симулируйте поведение модели в зависимости от времени, чтобы подтвердить проект модели.
Чтобы симулировать подсистемы нагревателя и термостата без подсистемы Помещения, вам нужен сигнал для температуры примерочной. Используйте блок Constant, чтобы установить температуру термостата и блок Sine Wave для реалистического сигнала наружной температуры.
Подготовьте модель к симуляции
Откройте свою модель с завершенными подсистемами. Удалите любые блоки, которые вы добавили, чтобы протестировать отдельные компоненты.
Откройте подсистему Помещения. Дважды кликните блок Inport пометил Heat Gain. В диалоговом окне блока Inport, набор Port number к 2
. Порт Heat Gain перемещается в нижнюю часть подсистемы Помещения.
Соединитесь Нагреватель (вкл\выкл) сигнализируют от подсистемы Термостата о выходе к входу подсистемы Нагревателя.
Добавьте блок Constant, чтобы установить комнатную температуру термостата. Установите значение Constant к 20
(градусы Цельсия).
Добавьте блок Sine Wave, чтобы представлять температуру примерочной. Установите параметры Amplitude на 10 (градусы Цельсия), Bias к 15
, и Frequency к 0.5
.
Соедините блоки как показано в фигуре.
Добавьте средство просмотра Осциллографа и добавьте выходные сигналы Нагревателя, Постоянного, и блоки Sine wave. Смотрите Добавляет Средство просмотра Сигнала.
На окне средства просмотра Осциллографа, в нажатии кнопки Configuration Properties стрела и затем нажимают значок Layout. Выберите два поля. Второй пустой график появляется ниже первого.
Из панели инструментов нажмите кнопку Signal Selector. Выберите Display 1
. Установите флажок Heater.
Выберите Display 2
. Установите флажки Constant и Sine Wave.
Симулируйте Модель и Оцените Результаты. Симулируйте модель с помощью времени остановки по умолчанию 10.
Симулируйте модель.
Откройте Средство просмотра Осциллографа и просмотрите результаты симуляции. Главный график является усилением нагревателя, в то время как более низкий график показывает температуру примерочной, смоделированную с синусоидой.
Определите, является ли этот результат тем, что вы ожидали.
От приблизительно 0 до 1,5 часов включен нагреватель. Приток теплоты не является постоянным, но изменяется, потому что приток теплоты является функцией различия между температурой воздуха нагревателя и температурой воздуха помещения. От 1,5 до 5,6 часов, выключен нагреватель, и приток теплоты (главный график) является нулем. Симуляция подтверждает ожидаемое поведение.
Чтобы симулировать подсистемы Нагревателя и Термостата с подсистемой Помещения, вам нужен сигнал для изменяющейся наружной температуры. Симуляция модели позволяет вам наблюдать как установка термостата и наружное температурное влияние внутренняя температура.
Подготовьте модель к симуляции
Откройте свою модель с завершенными подсистемами. Удалите любые блоки, которые вы добавили, чтобы протестировать отдельные компоненты.
Соедините подсистемы как показано.
Добавьте блок Constant для установки комнатной температуры. Установите параметр Constant value на 20
(градусы Цельсия).
Добавьте блок a Sine Wave, чтобы представлять изменяющуюся наружную температуру. Установите Amplitude на 5
, Bias к 12
, Frequency к 2*pi/24
, и Phase к 180
.
Добавьте блок Scope Viewer, чтобы просмотреть результаты симуляции.
В Средстве просмотра Сигнала нажмите кнопку Signal Selector. В Селекторном диалоговом окне Сигнала и на левой панели, выберите иерархию топ-модели. На правой панели выберите Room и Синусоидальные сигналы.
Симулируйте модель и оцените результаты
Установите время остановки симуляции на 24
(часы), чтобы представлять день.
Симулируйте модель.
Откройте Средство просмотра Осциллографа и просмотрите результаты.
Определите, совпадает ли результат симуляции с вашим ожиданием.
Когда наружная температура ниже комнатной температуры набора, комнатная температура колеблется 2 градуса выше и ниже установленной температуры. Поскольку подсистема термостата включает 2 гистерезиса степени, этот результат симуляции ожидается.
Можно сравнить результаты с моделью в качестве примера. В Окне Команды MATLAB войти
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling_prepared'))
ex_househeat_modeling_prepared.slx
.Совершенствуйте Параметры модели. С моделями Simulink можно в интерактивном режиме изменить параметры модели и затем наблюдать изменения в поведении модели. Этот подход позволяет вам оценивать свою модель быстро и подтверждать ваш проект.
Измените наружную температуру в блоке Sine Wave так, чтобы верхние значения были выше установленной температуры.
В диалоговом окне Sine Wave, набор Amplitude к 5
и Bias к 19
. Эти настройки показывают то, что происходит, когда наружная температура выше, чем в температуре.
Симулируйте модель и просмотрите результаты.
Определите, совпадают ли результаты с вашими ожиданиями.
Когда наружная температура выше установленной температуры, комнатная температура следует за наружной температурой с небольшой задержкой. В этом случае потеря тепла работает в обратном направлении - и представляет потерю тепла внешней средой в комнату.
Смоделируйте внешний интерфейс для дальнейшего тестирования и возможного применения в большей модели. В Simulink вы моделируете внешний интерфейс с помощью блоков Outport и Inport.
Добавьте блоки Inport, чтобы считать данные из наружной температуры и установленной температуры термостата в вашу модель.
Добавьте блоки Outport, чтобы соединить наружную температуру и комнатную температуру к большей модели или визуализировать результаты.
Путем определения физических единиц измерения для сигналов модели вы гарантируете непротиворечивость вычислений через компоненты модели. В Simulink вы задаете модули сигнала через блоки Outport и Inport.
Дважды кликните In1
блокируйтесь, чтобы открыть диалоговое окно Block Parameters. Выберите вкладку Signal Attributes.
В поле Unit начните вводить degree
. Из списка символов и имен, выберите °C degree_Celsius
.
Для остающегося температурного Inport и блоков Outport, установленных параметр Unit to °C degree_Celsius
.
Дисплеи на портах блока. На вкладке Debug выберите Information Overlays> Units.
Дважды кликните блок Heater Subsystem. Дважды кликните блок Heat Gain Outport, чтобы открыть диалоговое окно Block Parameters. Выберите вкладку Signal Attributes.
В поле Unit начните вводить joule/hour
. Из списка символов и имен, выберите joule/h joule/hour
.
Обновите модель. Нажмите 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'))
Проверьте, что симуляция представляет поведение системы, которую вы смоделировали. Начните путем экспериментального измерения физических характеристик системы, которые имеют сопоставимые сигналы в модели:
Соберите данные от физической системы
Подготовьте модель к симуляции
Измерьте динамические характеристики от фактической системы отопления дома. Вы будете использовать результаты измерений с симуляциями модели, чтобы проверить поведение и точность вашей модели.
Измерьте внутренние и внешние температуры дома каждые 6 минут в течение 24 часов.
Введите результаты измерений в рабочий лист Microsoft® Excel® или откройте электронную таблицу в качестве примера. В Окне Команды MATLAB войти
winopen(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_measured_data.xls'))
Рассмотрите график результатов измерений. Внутренние температурные данные показывают температурные скачки, когда нагреватель горячего воздуха включает. Этот шаблон типичен для системы отопления горячего воздуха.
Подготовьте модель к симуляции путем добавления внешнего интерфейса для сигналов элемента управления вводом и ввода данных.
Используйте модель, которую вы создали в учебной Системе отопления Дома Модели, или откройте модель в качестве примера. В Окне Команды MATLAB войти
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))
Замените блок Inport In2
с блоком Constant и установленный параметр Constant на 20
. Блок Constant устанавливает температуру термостата.
Добавьте блок Inport. Установите Port number на 1
. Это действие также устанавливает Port number сигнала наружной температуры к 2
.
Переименуйте первый блок Inport в Inside Temperature
. Переименуйте второй блок Inport в Outside Temperature
.
Добавьте блок Outport и соедините его с первым блоком Inport (В Температуре). Блоки Outport необходимы для сохранения (логгирования) сигналов. Установите Port number на 1
.
Проверьте точность модели и оптимизируйте параметры. Некоторые параметры, чтобы рассмотреть для оптимизации являются гистерезисом нагревателя, температурным смещением и сопротивлением дома к потере тепла. Выполните эти шаги, чтобы проверить вашу модель:
Импортируйте данные
Запустите симуляцию
Оцените результат симуляции
Измените параметры модели
Повторно выполните симуляцию
Можно использовать инструмент Root Inport Mapper, чтобы принести измеренные данные сигнала из электронной таблицы Excel в модель Simulink.
Откройте любой блок Inport. Нажмите кнопку Connect Input, чтобы открыть Корневой Картопостроитель Inport.
На панели инструментов нажмите From Spreadsheet.
В диалоговом окне From Spreadsheet кликните по кнопке обзора. Просмотрите к и выберите файл
. Нажмите Open. Нажмите OK, чтобы импортировать электронную таблицу.matlabroot
\help\toolbox\simulink\examples\ex_househeat_measured_data.xls
От Signals выпадающий список выберите Preview Signals.
На левой стороне расширьте структурный вид Sheet1
. Установите флажки Inside Temperature и Outside Temperature.
Нажмите Close Signal Preview.
На левой стороне выберите Sheet1
. Столбец Scenario Signal показывает два сигнала из электронной таблицы Excel и значка, указывающего, что сигналы не сопоставлены.
На панели инструментов выберите опцию Port Order. От Options выпадающий список установите флажок Update Model.
Из выпадающего списка Map to Model выберите Map Unconnected
. Сводные данные отображения показывают сигналы из электронной таблицы Excel, сопоставленной с блокировками порта Input.
Нажмите Mark for Simulation. Сводные данные отображения показывают Sheet1
отмечен для симуляции и Dataset
объект создается в рабочем пространстве MATLAB.
Сохраните данные сигнала в MAT-файле. В Командном Окне MATLAB введите
save('ex_househeat_measured_data.mat', 'Sheet1')
Данные сигнала, сопоставленные с входными портами, расположены в переменной рабочего пространства MATLAB. С каждым новым сеансом работы с MATLAB необходимо вручную перезагрузить данные или позволить предварительной нагрузке модели функционировать, делают это для вас.
Из Редактора Simulink, на вкладке Modeling, выбирают Model Settings> Model Properties, чтобы открыть диалоговое окно Model Properties.
Выберите вкладку Callbacks.
В разделе Model callbacks выберите PreLoadFcn
.
В поле Model pre-load function войти
load('ex_househeat_measured_data.mat')
Нажмите OK.
Сконфигурируйте свою модель, чтобы сохранить (регистрируют) данные сигнала во время симуляции. Можно затем просмотреть регистрируемые сигналы от симуляции с помощью Инспектора Данных моделирования.
В модели, на вкладке Modeling, нажимают Model Settings.
На левой панели выберите Data Import/Export.
На правой панели снимите флажки Time и Output.
Установите флажок Signal logging.
Установите флажок Record logged workspace data in Simulation Data Inspector.
Нажмите OK.
Идентифицируйте сигналы отобразиться в Инспекторе Данных моделирования, назвать сигналы, если они без имени, и устанавливают параметры логгирования.
Щелкните правой кнопкой по Внутренней Температурной сигнальной линии и выберите Properties.
В поле Signal name введите Measured Room Temperature
. Установите флажок Log signal data. Значок логгирования появляется выше сигнальной линии.
Назовите и выберите логгирование для этих сигналов.
Местоположение сигнала | Имя сигнала |
---|---|
Наружная температура от выходного порта 2. | Measured Outside Temperature |
Комнатная температура от выходного порта подсистемы Помещения | Room Temperature |
После импортирования данных и логгирования включения данных для сигналов, можно запустить симуляцию.
Используйте модель, которую вы подготовили к симуляции, или откройте модель в качестве примера. В Окне Команды MATLAB войти
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_simulation_prepared'))
На Панели инструментов Simulink, набор Stop Time к 24
часы.
Нажмите кнопку Run.
Симуляция модели запускается от 0.0
к 24.0
часы с помощью данных о наружной температуре из root import block, как введено.
Используйте Инспектора Данных моделирования, чтобы сравнить симулированные выходные сигналы с результатами измерений.
На Панели инструментов Simulink нажмите кнопку Simulation Data Inspector.
Отдельный запуск появляется в панели Runs каждый раз, когда вы симулируете модель.
Установите все флажки сигнала. График показывает график каждого сигнала, который вы выбираете.
Главный сигнал является Измеренной Комнатной температурой. Средний сигнал является Измеренной Наружной температурой. Нижним сигналом является симулированная Комнатная температура.
Одно очевидное изменение в модели является гистерезисом термостата. Симулированная комнатная температура колеблется 18–22 градуса вокруг температурного сетбола 20 градусов. Измеренная комнатная температура колеблется 20–25 градусов с тем же сетболом.
Откройте блок Relay в подсистеме Термостата.
Измените Switch on point от 2
к 0
потому что различие между комнатной температурой и сетболом 0.
Измените Switch off point от -2
к -5
. Когда комнатная температура является 5 градусами выше сетбола, вы хотите выключить нагреватель. Сетбол является 5 градусами ниже комнатной температуры.
Используйте Инспектора Данных моделирования, чтобы сравнить различия между двумя симуляциями, которые используют различные параметры модели. Это сравнение показывает, как изменения улучшают точность вашей модели.
Симулируйте модель.
Откройте инспектора данных моделирования.
Расширьте список регистрируемых сигналов путем выбора стрелки влево запуска. Для Run1 выберите Measured Outside Temperature
и Measured Room Temperature
флажки. Для Run2 выберите Room Temperature
флажок.
Рассмотрите сигналы. Минимальные и максимальные значения для симулированной комнатной температуры теперь совпадают с измеренными значениями комнатной температуры.