exponenta event banner

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

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

Файл plcdemo_ladder_househeat_data.m инициализирует данные в рабочей области модели. Чтобы внести изменения, можно непосредственно отредактировать рабочее пространство модели или отредактировать файл и повторно загрузить рабочее пространство модели. Для просмотра рабочего пространства модели выберите меню МОДЕЛИРОВАНИЕ > Обозреватель моделей в редакторе Simulink.

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

Откройте plcdemo_ladder_househeat с помощью:

> > plcdemo_ladder_househeat_complete

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

При открытии модели информация о доме загружается из файла plcdemo_ladder_househeat_data.m. Файл выполняет следующие действия:

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

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

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

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

  • Определяет стоимость электроэнергии (0,09 $/кВт)

  • Указывает начальную комнатную температуру (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 Runner. Внутри этого регулятора температуры AOI Runner находится функциональный блок схемы многозвенной цепи. Дважды щелкните этот блок и выберите Логическую подпрограмму для просмотра логики многозвенной цепи для регулятора температуры.

Дом

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 Runner Block с именем Temperature Controller. Выбрать Design Verifier > Generate test case for subsystem.

Шаг 6: Создание кода C

Убедитесь, что ert.tlc выбирается на вкладке Создание кода (Code Generation) окна Параметры конфигурации модели (Model Configuration Parameters). Выполните предварительную обработку модели симулятора для генерации кода C/C + +, выполнив следующую команду в окне команд MATLAB:

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

Откройте окно Temperature Controller Подсистема и щелкните правой кнопкой мыши AOI Runner Block с именем Temperature Controller. Выбрать C/C++ Code > Build This Subsystem.

Шаг 7: Создание кода лестницы и испытательных стендов

Открыть модель испытательного стенда управления резервуаром лестницы:

> > plcdemo_ladder_househeat_tb

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

Чтобы создать testbench, выберите Generate testbench for subsystem опции в PLC Configuration Parameters Dialog и создать код.