В этом руководстве показано, как смоделировать и симулировать динамическую систему с помощью Simulink® программное обеспечение. Модель предназначена для системы отопления, которая включает нагреватель ( модель объекта управления), управляемый термостатом ( моделями контроллеров), для нагрева помещения (окружение модель) до заданной температуры. Хотя это простая модель, процессы создания структуры модели и проекта алгоритма являются теми же процессами, которые вы будете использовать для более сложных моделей.
Чтобы просмотреть завершенную модель, в MATLAB® Командное окно, введите
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))
Моделирование начинается с завершения задач, которые находятся вне программного окружения Simulink. Задайте требования модели и выведите математические уравнения. Собирайте данные для параметров модели и результатов измерений данных выходного сигнала, чтобы подтвердить результаты симуляции.
Прежде чем разрабатывать модель, учитывайте ваши цели и требования. Целями моделирования системы отопления домов являются:
Наблюдайте, как изменение наружной температуры влияет на температуру в помещении.
Исследуйте эффект изменения параметров на температуру в помещении.
Как только вы понимаете ваши требования к моделированию, можно начать идентифицировать компоненты системы.
Система отопления дома в этом руководстве определяет систему отопления и ее отношение к комнате. Он включает в себя:
Тепловые характеристики дома
Тепловые характеристики нагревателя
Термостат для управления нагревателем
Наружное окружение
Окружение в помещении
Термостат регулярно контролирует комнатную температуру и включает или отключает нагреватель в зависимости от различия между установленной температурой и комнатной температурой.
Модель для этой системы включает три компонента: нагреватель, термостат и помещение.
Три зависящие от времени переменные определяют теплообмен в комнате:
Температура помещения ()
Усиление тепла: Тепловая энергия, переданная от нагревателя () в комнату
Потери тепла: Тепловая энергия, переданная из помещения () к окружающему окружению на открытом воздухе
Дифференциальное уравнение задает отношение между этими переменными, но поскольку теплопередача задана в терминах изменения температуры, переменной состояния является только комнатная температура.
Температура воздуха в нагревателе постоянна при Theater и комнатная температура Troom. Увеличение тепловой энергии в помещении осуществляется конвекцией нагретого воздуха от нагревателя с теплоемкостью cair. Коэффициент усиления тепла для массы воздуха в нагревателе, , пропорционально различию температур между нагревателем и помещением:
Скорость усиления тепловой энергии от нагревателя,
Вентилятор забирает комнатный воздух и пропускает его через нагреватель и обратно в комнату. Постоянное количество воздуха, , течет через нагреватель в единицу времени и заменяя с этой константой упрощает уравнение
Потеря тепловой энергии из помещения происходит проводимостью через стенки и окна, и пропорциональна различию температур между комнатной температурой и внешней температурой:
Скорость потерь тепловой энергии
Замена с где - тепловое сопротивление упрощает уравнение,
Определите скорость изменения температуры в помещении путем вычитания скорости потерь тепла из скорости усиления тепла:
Большинство значений параметров, необходимых для модели отопления дома, опубликованы в таблицах стандартных свойств. Скорость потока жидкости для нагревателя получена из таблицы данных производителя.
Перечислите переменные и коэффициенты из ваших уравнений и проверьте размерную согласованность между модулями. Поскольку модулем времени для модели являются часы, преобразуйте опубликованные значения теплового свойства материалов из модулей секунды в часы.
Переменные уравнения и константы. При построении модели можно использовать постоянные имена и значения в этой таблице.
Переменная уравнения или коэффициент | Описание | Модули |
---|---|---|
A | Площадь стенки или окна | квадратный метр |
D | Глубина стенки или окна | метр |
Q | Тепловая энергия, переданная | джоуль |
dQ/dt | Скорость передачи тепловой энергии | джоуль/час |
k | Теплопроводность; свойство материала проводить теплопередачу | джоуль/метр· час· степень |
r | Тепловое сопротивление; свойство материала противостоять теплопередаче | метр· час· градус/джоуль |
R | Термостойкость
| час· градус/джоуль |
m | Масса воздуха в помещении или обогревателе Масса нагревателя | килограмм |
dm/dt | Скорость прохождения воздушной массы через нагреватель | килограмм/час |
M | Постоянная скорость прохождения воздушной массы через нагреватель | килограмм/час |
c | Удельная теплоемкость | джоуль/килограмм· степень |
Theater | Постоянная температура воздуха от нагревателя | Степень Цельсия |
Troom | Начальная температура воздуха комнатной | Степень Цельсия |
Моделируйте структуру верхнего уровня с компонентами, которые включают интерфейсы для передачи данных между отдельными компонентами. Ваша модель должна быть организована в иерархическую структуру, которая соответствует компонентам системы.
На верхнем уровне модели отопления дома используйте Subsystem блоки, чтобы организовать работу модели и создать структуру. Модель включает подсистемы Thermostat, Heater и Room.
Откройте новую модель Simulink: Open New Model.
Откройте браузер библиотеки: открытый браузер библиотеки 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, чтобы отобразить список блоков с Sum в имени. Щелкните блок Sum в списке. При запросе списка знаков введите |-+
для размещения - и + входных портов на блоке и нажмите Enter.
Вертикальная планка (|
) изменяет положение входа портов путем вставки пространств между портами. Вертикальная полоса в начале списка знаков, помещает пространство в верхней части блока и смещает порты против часовой стрелки.
Добавьте блок Constant, чтобы смоделировать постоянную температуру воздуха от нагревателя. Установите параметр Constant value блоков равным T_heater
. Вы определите значение T_heater
в рабочем пространстве модели.
Если блок отображается -C-
измените размер блока, чтобы отобразить имя переменной.
Добавьте второй блок Inport, чтобы принять сигнал комнатной температуры от другой части вашей модели.
Добавьте блок Gain в подсистему нагревателя. Установите параметр Gain равным M_heater_air*c_air
. Значения этих переменных будут заданы в Рабочем пространстве модели.
Соедините выход блока Sum с входом блока Gain.
Добавьте метки к сигнальным линиям, чтобы помочь проследить компоненты модели к уравнениям и требованиям модели. Дважды кликните над сигнальной линией и введите метку.
Переименуйте блоки и соедините их как показано на рисунке.
Моделируйте переключатель нагревателя. Термостат отправляет на нагреватель сигнал включения/выключения, равный 1 (on) или 0 (off). Поскольку входной сигнал является двоичным, можно использовать блок Product для моделирования переключателя.
Удалите соединение между блоками In1 и Out1. Выберите линию и нажмите Delete.
Добавьте блок Product. Измените размер блока вертикально, чтобы выровнять блок в вашей схеме. Соедините 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 (on) и принимает постоянную комнатную температуру 25, ожидаемый выход от усиления составляет (50 - 25) x 3600 × 1005,3 = 9,05 × 107. Проверьте этот выход, запустив модель с этими входами:
Сигнал включения/выключения нагревателя, который изменяется от 0
на 1
после 4th час
Постоянная комнатной температуры в 25
В Подсистеме Нагревателя нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Размер блока нагревателя можно изменить, как показано на рисунке.
Заметьте, что блок Heater имеет второй входной порт и что каждый порт соответствует блоку Inport или блоку Outport в подсистеме.
Добавьте блок Constant, чтобы представлять комнатную температуру и установите значение 25
(степени Цельсия). Добавьте блок Step для временного сигнала Heater (on/off). Установите Step time значение 4
.
Добавьте блок Scope и соедините его с выходом Heat Gain.
Моделирование модели нагревателя и оценка результатов. Используйте настройки симуляции по умолчанию, чтобы подтвердить проект модели.
Дважды кликните блок Scope, чтобы открыть его.
Симулируйте модель. Нажмите кнопку Run.
Когда симуляция выполняется, возможности строит графики результатов.
Просмотр трассировки возможностей видимости.
Определите, является ли этот результат ожидаемым.
Когда сигнал включения/выключения нагревателя переключается с 0 до 1 в 4 часа, нагреватель выводит 9.05 × 107 джоуль/час. Симуляция проверяет ожидаемое поведение.
Удалите Constant, Step и Scope блоки, добавленные для проверки компонента нагревателя.
Можно смоделировать термостат, не используя системных уравнений. Требования к этому компоненту:
Когда комнатная температура ниже установленной температуры, нагреватель включен, и сигнал управления равен 1. Когда комнатная температура выше установленной температуры, сигнал управления равен 0.
Чтобы избежать повторного переключения вокруг заданной температуры, термостат допускает гистерезис 2 степеней Цельсия вокруг заданной точки. Если термостат включен, комнатная температура должна вырасти на 2 степени выше установленной температуры перед поворотом. Если термостат выключен, комнатная температура должна опуститься на 2 степени ниже установленной температуры перед включением.
Этот компонент моделирует операцию термостата, определяя, когда нагревательная система включена или отключена. Он содержит только один Relay блок, но логически представляет термостат в модели.
Вычесть установленную комнатную температуру из комнатной температуры. Если установленная комнатная температура теплее комнатной, модель термостата отправляет сигнал «включено» в модель нагревателя. Чтобы определить, так ли это, начните с вычитания комнатной температуры из установленной температуры.
Откройте подсистему Thermostat. Добавьте блок Sum. Установите значение List of signs параметра |+-
.
Соедините блок Inport с входом + блока Sum. Блок Inport устанавливает комнатную температуру.
Добавьте блок Inport и соедините его с входом - блока Sum. Этот второй Inport блок является текущей комнатной температурой из подсистемы помещения. Переместите выход порт в верхнюю часть блока. Щелкните правой кнопкой мыши блок и выберите Rotate & Flip > Counterclockwise. При необходимости можно изменить форму блока как показано на рисунке путем перетаскивания указателей.
Переименуйте блоки как показано на рисунке.
Моделируйте сигнал термостата. Моделируйте сигнал от термостата со значением гистерезиса 2 степени Цельсия.
В Подсистеме Термостат добавьте блок Relay. Установите параметр Switch on point равным 2
, и параметр Switch off point для -2
.
Соедините и переименуйте блоки как показано на рисунке.
Подготовьте модель термостата к симуляции. Подготовим подсистему Thermostat к симуляции. Подумайте об ожидаемом поведении термостата и о том, как можно протестировать это поведение с помощью симуляции. Когда комнатная температура повышается над установкой термостата на 2 степени, выход термостата равен 0. Когда комнатная температура перемещается ниже значения термостата на 2 степени, выход термостата равен 1.
Из подсистемы Thermostat нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер блока Thermostat, как показано на рисунке.
Заметьте, что подсистема Thermostat теперь имеет второй входной порт. Каждый входной порт соответствует блоку Inport в подсистеме.
Добавьте блок Constant для заданной температуры. Установите параметр Constant равным 25
(степени Цельсия).
Добавьте блок Sine Wave, чтобы представлять изменение комнатной температуры. Установите параметр Amplitude равным 10
, Bias для 20
и Frequency для 0.5
. Эти параметры дают изменение выше и ниже заданной точки 25.
Создайте и соедините Scope средство просмотра в порте нагревателя. Смотрите Add Signal Viewer.
Соедините эти два входных сигналов с Средство Просмотра.
Моделируйте модель термостата и оценивайте результаты. Используйте настройки симуляции по умолчанию, чтобы подтвердить проект модели.
Симулируйте модель. При выполнении симуляции Средство Просмотра строит графики результатов.
Откройте Scope, чтобы просмотреть трассировку возможностей.
Определите, является ли этот результат ожидаемым.
Первоначально комнатная температура ниже установленной температуры, и реле включено. Когда комнатная температура достигает установленной температуры, реле продолжает включаться до тех пор, пока комнатная температура не повысится еще на 2 степени. Симуляция проверяет ожидаемое поведение.
Входами для компонента помещения являются тепловой поток от компонента нагревателя и температура наружного воздуха. Компонент помещения использует эти входы, чтобы вычислить потери тепла через стенки, потери тепла через окна и текущую комнатную температуру.
Чтобы спроектировать подсистему помещения, используйте уравнение скорости потерь тепла и уравнение изменения комнатной температуры.
Модель изменения комнатной температуры. Скорость изменения температуры в помещении (dTroom/dt) определяется уравнением
Термин dQgain/dt
- сигнал от Подсистемы Нагревателя.
Откройте блок Подсистема Помещения. В Подсистеме комнат добавьте блок Sum. Установите параметр List of signs равным |+–
.
Подключите In1 к входу +. Входной вход является коэффициентом усиления тепла (dQgain/dt
) от компонента нагревателя. The - вход соединяется с потерями тепла (dQloss/dt
) из комнаты.
Добавьте блок Gain. Установите параметр Gain равным 1/(m_room_air*c_air)
. Соедините выход блока Sum с входом блока Gain. Маркируйте сигналы как показано на рисунке. Пунктирные сигнальные линии - это сигналы, которые вы соединяете позже.
Моделируйте комнатную температуру. Выходом блока Gain является изменение комнатной температуры (dTroom/dt
). Чтобы получить текущую комнатную температуру (Troom
), интегрируйте сигнал.
Добавьте блок Integrator. Установите параметр Initial condition равным Troom_IC
.
Соедините выход блока Integrator с Out1 как показано на рисунке.
Моделируйте потери тепла через стенки и окна. Это уравнение является скоростью потерь тепловой энергии через стенки и окна:
В Подсистеме комнат добавьте блок 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
(час· градус/джоуль).
Подготовьте модель помещения к симуляции. Подготовьте подсистему Room к симуляции. Подумайте об ожидаемом поведении и о том, как можно протестировать это поведение с помощью симуляции. Когда нагреватель выключен (Тепловой Коэффициент = 0) и начальная температура помещения (20) выше наружной температуры (10), потери тепла должны продолжаться до тех пор, пока комнатная температура не будет равна внешней температуре.
В Подсистеме комнат нажмите кнопку Navigate Up To Parent, чтобы перейти к верхнему уровню вашей модели. Измените размер блока «Комната» как показано на рисунке.
Блок Room теперь имеет второй входной порт. Каждый входной порт соответствует блоку 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) комнатная температура повышается до внешней температуры - поведение, которое модель явным образом не задала, и может считаться неожиданным.
Уравнение, которое моделирует потери тепла, также моделирует усиление тепла, когда наружная температура выше внутренней комнатной температуры. Хотя модель явным образом не задала это поведение, когда нагреватель выключен, результат имеет смысл физически.
Соедините компоненты модели, добавьте реалистичный вход, а затем симулируйте поведение модели с течением времени, чтобы подтвердить проект модели.
Чтобы симулировать подсистемы нагревателя и термостата без подсистемы Room, вам нужен сигнал изменения комнатной температуры. Используйте блок Constant, чтобы задать температуру термостата и блок Sine Wave для реалистичного сигнала внешней температуры.
Подготовьте модель к симуляции
Откройте свою модель с завершенными подсистемами. Удалите все добавленные блоки для тестирования отдельных компонентов.
Откройте подсистему Room. Дважды кликните Inport блок с меткой Heat Gain. В Inport диалогового окна блока установите Port number равным 2
. Порт Heat Gain переходит в нижнюю часть подсистемы Room.
Подключите сигнал включения/выключения нагревателя от выхода Подсистемы термостата к входу Подсистемы нагревателя.
Добавьте блок Constant, чтобы установить комнатную температуру термостата. Установите Constant значение 20
(степени Цельсия).
Добавьте блок Sine Wave, чтобы представлять изменение комнатной температуры. Установите параметры Amplitude равные 10 (степени Цельсия), Bias равными 15
, и Frequency к 0.5
.
Соедините блоки как показано на рисунке.
Добавьте Средство Просмотра и добавьте выходные сигналы от блоков Heater, Constant и Sine Wave. Смотрите Add Signal Viewer.
В окне средство просмотра в кнопке 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. В диалоговом окне Signal Selector и в левой панели выберите иерархию верхней модели. На правой панели выберите сигналы Room и Sine Wave.
Моделирование модели и оценка результатов
Установите время остановки симуляции равным 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 вы моделируете внешний интерфейс с помощью блоков Inport и Outport.
Добавьте Inport блоки, чтобы считать данные о внешней температуре и установленной температуре термостата в вашу модель.
Добавьте Outport блоки, чтобы соединить внешнюю температуру и комнатную температуру с большей моделью или визуализировать результаты.
Путем определения физических единиц измерения для сигналов модели, вы гарантируете согласованность вычислений между компонентами модели. В Simulink вы задаете модули измерения сигнала через Inport и Outport блоки.
Дважды кликните In1
Блок для открытия диалогового окна Параметров блоков. Выберите вкладку Signal Attributes.
В Unit поле начните набирать degree
. Из списка символов и имен выберите °C degree_Celsius
.
Для остальных блоков Inport и Outport задайте значение параметра Unit °C degree_Celsius
.
Отображение модулей на портах блоков. На вкладке Debug выберите Information Overlays > Units.
Дважды кликните блок Subsystem нагревателя. Дважды кликните блок Outport теплового усиления, чтобы открыть диалоговое окно Параметров блоков. Выберите вкладку 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'))
Просмотрите график измеренных данных. Данные внутренней температуры показывают скачки температуры при включении нагревателя горячего воздуха. Этот шаблон типичен для системы нагрева горячего воздуха.
Подготовьте модель для симуляции путем добавления внешнего интерфейса для данных входа и входных сигналов управления.
Используйте модель, созданную в руководстве Model House Heating System, или откройте пример модели. В Командном Окне 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 (Inside Temperature). Блоки Outport необходимы для сохранения ( логгирования) сигналов. Установите Port number значение 1
.
Проверьте точность модели и оптимизируйте параметры. Некоторыми параметрами, учитываемыми для оптимизации, являются гистерезис нагревателя, смещение температуры и сопротивление дома потери тепла. Выполните следующие шаги, чтобы проверить свою модель:
Импорт данных
Выполняйте симуляцию
Оцените результат симуляции
Изменение параметров модели
Перезапустите симуляцию
Можно использовать инструмент Root Inport Mapper, чтобы принести данные измеренного сигнала из электронной таблицы Excel в модель Simulink.
Откройте любой Inport блок. Нажмите кнопку Connect Input, чтобы открыть Root Inport Mapper.
На панели инструментов нажмите кнопку From Spreadsheet.
В диалоговом окне «Из электронной таблицы» нажмите кнопку обзора. Просмотрите и выберите файл
. Нажмите Open. Щелкните OK, чтобы импортировать электронную таблицу.matlabroot
\ help\toolbox\simulink\examples\ex _ contommeat _ 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 Editor на вкладке Modeling выберите Model Settings > Model Properties, чтобы открыть диалоговое окно Свойства модели.
Выберите вкладку Callbacks.
В Model callbacks разделе выберите PreLoadFcn
.
В Model pre-load function поле введите
load('ex_househeat_measured_data.mat')
Нажмите OK.
Сконфигурируйте свою модель, чтобы сохранить (логарифмировать) данные сигнала во время симуляции. Затем можно просмотреть записанные сигналы из симуляции с помощью Данные Моделирования Inspector.
В модели на вкладке Modeling нажмите Model Settings.
На левой панели выберите Data Import/Export.
На правой панели снимите флажки Time и Output.
Установите флажок Signal logging.
Установите флажок Record logged workspace data in Simulation Data Inspector.
Нажмите OK.
Идентифицируйте сигналы, которые будут отображаться в Данные моделирования Inspector, назовите сигналы, если они не называются, и установите параметры регистрации.
Щелкните правой кнопкой мыши сигнальную линию внутренней температуры и выберите 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 в качестве входных данных.
Используйте Данные Моделирования Inspector, чтобы сравнить моделируемые выходные сигналы с измеренными данными.
На панели инструментов Simulink нажмите кнопку Simulation Data Inspector.
Отдельный запуск появляется на панели Runs каждый раз, когда вы моделируете модель.
Установите все флажки сигнала. На графике показан график каждого выбранного сигнала.
Верхний сигнал - Измеренная Комнатная Температура. Средним сигналом является Измеренная Наружная Температура. Нижним сигналом является моделируемая комнатная температура.
Одним из очевидных изменений модели является гистерезис термостата. Моделируемая комнатная температура колеблется 18-22 степени вокруг заданной температуры точки 20 степеней. Измеренная комнатная температура колеблется на 20-25 степени с той же заданной точкой.
Откройте блок Relay в подсистеме Thermostat.
Измените Switch on point из 2
на 0
потому что различие между комнатной температурой и заданной точкой равна 0.
Измените Switch off point из -2
на -5
. Когда комнатная температура на 5 градусов выше заданной точки, необходимо выключить нагреватель. Заданные точки на 5 градусов ниже комнатной температуры.
Используйте Данные Моделирования Inspector, чтобы сравнить различия между двумя симуляциями, которые используют различные параметры модели. Это сравнение показывает, как изменения улучшают точность вашей модели.
Симулируйте модель.
Откройте Данные моделирования Inspector.
Разверните список зарегистрированных сигналов, выбрав стрелу налево от запуска. Для Run1 выберите Measured Outside Temperature
и Measured Room Temperature
флажки. Для Run2 выберите Room Temperature
флажок.
Проверьте сигналы. Минимальное и максимальное значения для моделируемой комнатной температуры теперь совпадают с измеренными значениями комнатной температуры.