Симуляция контроля температуры и генерация кода Используя лестничную логику

В этом примере показано, как смоделировать температурный контроллер в Simulink® при помощи лестничной логики. Пример также демонстрирует генерацию теста с помощью Simulink Design Verifier™, C и лестничной генерации кода и лестничной генерации испытательного стенда.

plcdemo_ladder_househeat_data.m файл инициализирует данные в рабочем пространстве модели. Чтобы внести изменения, можно отредактировать рабочее пространство модели напрямую или отредактировать файл и перезагрузить рабочее пространство модели. Чтобы просмотреть рабочее пространство модели, выберите MODELING> Model Explorer из редактора Simulink.

Шаг 1: открытие модели

Откройте plcdemo_ladder_househeat при помощи:

>> plcdemo_ladder_househeat_complete

Шаг 2: инициализация модели

Когда модель открыта, она загружает информацию о доме из plcdemo_ladder_househeat_data.m файла. Файл делает следующее:

  • Задает геометрию дома (размер, количество окон)

  • Задает тепловые свойства материалов дома

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

  • Обеспечивает характеристики нагревателя (температура горячего воздуха... скорость потока)

  • Задает стоимость электричества (0,09$/kWhr)

  • Задает начальную комнатную температуру (20 градусов. Цельсия = 68 градусов... Фаренгейт)

Примечание: Время дано в модулях часов. Определенные количества, как воздушная скорость потока, описываются в час (не в секунду).

Шаг 3: понимание компонентов модели

Заданные значения

Set Point постоянный блок. Он задает температуру, которая должна быть обеспечена в закрытом помещении. Это - 70 градусов по Фаренгейту по умолчанию. Температуры даны в Фаренгейте, но затем преобразованы в Цельсия, чтобы выполнить вычисления.

Область значений

Range постоянный блок. Это указывает диапазон вокруг Сетбола для комнатной температуры, чтобы колебаться. Это - 5 градусов по Фаренгейту по умолчанию. Следовательно, комнатная температура будет колебаться между$Set\_L$ и$Set\_H$ где

$$Set\_L = Set Point - Range$$

$$Set\_H = Set Point + Range$$

Температурный контроллер

Temperature Controller подсистема, которая имеет контейнер Бегуна AOI. В этом температурном контроллере Бегун AOI является Лестничным Функциональным блоком Схемы. Дважды щелкните по этому блоку и выберите стандартную программу Logic, чтобы просмотреть лестничную логику для температурного контроллера.

Дом

House подсистема, которая моделирует внешнюю среду, дом и динамику нагревателя. Обратитесь к Тепловой Модели примера Дома для получения дополнительной информации о них.

Лестничная логика

Откройте Temperature Controller > Ladder Diagram Function Block > Logic Routine просмотреть лестничную схему для температурного контроллера

Первое, которому звонят, вычисляет$Set\_L$ и$Set\_H$ значения на основе Set Point и Range входные параметры. GEQ активирует TEMP_H обмотайте если Room Temperature больше или равен SET_H. Точно так же LEQ активирует TEMPL_L обмотайте если Room Temperature меньше чем или равно SET_L значение.

Самое нижнее, которому звонят, включает нагреватель если TEMP_L выход активен и выключает слушателя если TEMP_H выход активен.

Шаг 4: запустите симуляцию

Нажмите Run кнопка, чтобы запустить симуляцию. Открытый HMI и используйте следующие средства управления:

  • Температурные Настройки контроллера: Позволяет изменять Set Point и Range входные значения.

  • Температура окружающей среды: Позволяет изменять среднюю наружную температуру и область значений ее изменения.

  • Комнатная температура: Отображает состояние нагревателя и внутренние и внешние температурные графики.

Шаг 5: сгенерируйте тесты Simulink Design Verifier

Предварительно обработайте модель Simulink для генерации Теста SLDV путем выполнения следующей команды в командном окне MATLAB:

>> plcladderoption (gcs, 'SLDV', 'on')

Откройте Temperature Controller Подсистема и щелчок правой кнопкой по Блоку Бегуна AOI под названием Temperature Controller. Выберите Design Verifier > Generate test case for subsystem.

Шаг 6: Сгенерируйте код С

Убедитесь, что ert.tlc выбран во вкладке Code Generation Параметров конфигурации Модели. Предварительно обработайте simulink модель для генерации кода C/C++ путем выполнения следующей команды в командном окне MATLAB:

>> plcladderoption (gcs, 'FastSim', 'on');

Откройте Temperature Controller Подсистема и щелчок правой кнопкой по Блоку Бегуна AOI под названием Temperature Controller. Выберите C/C++ Code > Build This Subsystem.

Шаг 7: Лестничный код и генерация испытательного стенда

Открытый лестничный бак управляет моделью испытательного стенда:

>> plcdemo_ladder_househeat_tb

Выберите Temperature Controller/ Temperature Controller Runner блокируйте и щелкните правой кнопкой по PLC Coder->Generate Code для Подсистемы, чтобы сгенерировать лестничный код.

Чтобы сгенерировать испытательный стенд, выберите Generate testbench for subsystem опция в PLC Configuration Parameters Dialog и сгенерируйте код.