Этот пример показывает, как смоделировать контроллер температуры в Simulink ® с помощью логики лестницы. В примере также показана генерация тестовых примеров с помощью Simulink Design Verifier™, генерация кода на C и лестничной клетке и генерация лестничного теста.
Файл plcdemo_ladder_househeat_data.m инициализирует данные в рабочем пространстве модели. Чтобы внести изменения, можно отредактировать рабочее пространство модели непосредственно или отредактировать файл и повторно загрузить рабочее пространство модели. Чтобы просмотреть рабочее пространство модели, выберите МОДЕЛИРОВАНИЕ > Model Explorer из редактора Simulink.
Откройте plcdemo_ladder_househeat при помощи:
> > plcdemo_ladder_househeat_complete
Когда модель открывается, она загружает информацию о доме из файла plcdemo_ladder_househeat_data.m. Файл делает следующее:
Определяет геометрию дома (размер, количество окон)
Определяет тепловые свойства материалов дома
Вычисляет тепловое сопротивление дома
Обеспечивает характеристики нагревателя (температура горячего воздуха,... скорость потока жидкости)
Определяет стоимость электроэнергии (0,09 $/кВт)
Задает начальную комнатную температуру (20 ° по Цельсию = 68 °... Фаренгейт)
Примечание: Время определяется в единицах часов. Определенные величины, такие как скорость потока воздуха, выражаются в час (не в секунду).
Заданные точки
Set Point
является постоянным блоком. Он задает температуру, которая должна поддерживаться в закрытом помещении. По умолчанию это 70 степени по Фаренгейту. Температуры приведены в Фаренгейте, но затем преобразуются в Цельсий для выполнения вычислений.
Область значений
Range
является постоянным блоком. Это задает область значений значений заданных точек комнатной температуры, которые будут колебаться. По умолчанию это 5 степени по Фаренгейту. Следовательно, комнатная температура будет колебаться между и где
Температурный Контроллер
Temperature Controller
является подсистемой, имеющей контейнер AOI Runner. Внутри этого контроллера температуры AOI Runner находится функциональный блок лестничной схемы. Дважды кликните этот блок и выберите Логическая стандартная программа, чтобы просмотреть логику лестницы для контроллера температуры.
Дом
House
является подсистемой, которая моделирует динамику внешнего окружения, дома и нагревателя. Для получения дополнительной информации см. пример «Тепловая модель дома».
Логика лестницы
Откройте Temperature Controller
> Ladder Diagram Function Block
> Logic Routine
чтобы просмотреть лестничную схему для контроллера температуры
Первый прогон вычисляет значения и на основе Set Point
и Range
входы. The GEQ
активирует TEMP_H
катушка, если Room Temperature
больше или равно SET_H
. Аналогично, The LEQ
активирует TEMPL_L
катушка, если Room Temperature
меньше или равно SET_L
значение.
Самая нижняя ступень включает нагреватель, если TEMP_L
выход активен и отключает прослушиватель, если TEMP_H
выход активен.
Нажмите Run
кнопка для запуска симуляции. Откройте HMI
и использовать следующие элементы управления:
Настройки контроллера температуры: Позволяет изменять Set Point
и Range
входные значения.
Температура окружающей среды: Позволяет изменять среднюю наружную температуру и область значений ее изменения.
Комнатная температура: Отображает состояние нагревателя, а также графики внутренней и внешней температуры.
Предварительно обработайте модель Simulink для генерации теста SLDV, выполнив следующую команду в Командном окне MATLAB:
> > plcladderoption (gcs, 'SLDV', ' on ')
Откройте Temperature Controller
Подсистема и щелкните правой нажатие кнопки по блоку AOI Runner с именем Temperature Controller
. Выберите Design Verifier
> Generate test case for subsystem
.
Убедитесь, что ert.tlc
выбран на вкладке Генерация кода (Code Generation) параметра Параметры Конфигурации. Предварительно обработайте модель simulink для генерации кода C/C + + путем выполнения следующей команды в Командном окне MATLAB:
> > plcladderoption (gcs, 'FastSim', ' on ');
Откройте Temperature Controller
Подсистема и щелкните правой нажатие кнопки по блоку AOI Runner с именем Temperature Controller
. Выберите C/C++ Code
> Build This Subsystem
.
Откройте лестницу бака управляйте моделью теста:
> > plcdemo_ladder_househeat_tb
Выберите Temperature Controller/ Temperature Controller Runner
блок и щелчок правой кнопкой мыши PLC Coder->Generate Code
для Подсистемы, чтобы сгенерировать код лестницы.
Чтобы сгенерировать testbench, выберите Generate testbench for subsystem
опция в PLC Configuration Parameters Dialog
и сгенерируйте код.