Применение S-функций в Simulink, страница 2

S-функции используют специальный синтаксис запроса, который дает возможность Вам взаимодействовать с солверами{решающими устройствами} уравнений Simulink. Это взаимодействие очень похоже к взаимодействию, которое имеет место между солверами{решающими устройствами} и встроенными блоками Simulink. Форма S-функции является очень общей и может описать непрерывные, дискретные, и гибридные системы.

Использование S-функций в Моделях

Чтобы включать S-функцию в модель Simulink, перетащите блок S-Function от библиотеки блока Functions и Tables Simulink в модель. Тогда определите имя S-функции в поле S-function диалогового окна блока S-Function как иллюстрировано на рисунке ниже.



Рисунок 1-1: Отношения между блоком S-функции, его диалоговым окном, и исходным файлом, который определяет поведение блока


Когда требуется использовать S-функцию

Самое общее назначение S-функций - создать заказные блоки Simulink. Вы можете использовать S-функции для разнообразys[ приложений, включая:

  • Добавление новых универсальных блоков Simulink
  • Добавление блоков, которые представляют аппаратные драйверы устройства
  • Включение существующего C кода в моделирование, описывающее систему как математический набор уравнений
  • Использование графических мультипликаций

Преимущество использования S-функций состоит в том, что Вы можете формировать универсальный блок, который Вы можете использовать много раз в модели, изменяя параметры с каждым образцом блока.

В этом примере, модель содержит два образца блока S-Function. Обе ссылки блоков указывают тот же самый исходный файл (mysfun, который может быть или C MEX-ФАЙЛОМ или M-файлом). Если и C MEX-файл и M-файл существуют с тем же самым именем, C MEX-файл имеет приоритет и является файлом, который S-функция использует.

Как работают S-функции

Чтобы создавать S-функции, Вы должны знать, как S-функции работают. Понимание, как работа S-функций, в свою очередь, требует понимания, как Simulink моделирует модель, и это, в свою очередь требует понимания математики блоков. Этот раздел поэтому начинается, объясняя математические отношения между входами блока, состояниями, и выходами.

Математика Блоков Simulink

Блок Simulink состоит из набора входов, набор состояний, и набора выходов, где выходы - функция типового времени, входов, и состояний блока.

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


Стадии Моделирования

 Simulink выполняет моделирование поэтапно.

Сначала протекает стадия инициализации. В этой стадии, Simulink включает библиотечные блоки в модель, размножает размеры, типы данных, и определяет время сэмплирования, оценивает блочные параметры, определяет блочный порядок выполнения, и распределяет память.

Затем Simulink переходит к циклу моделирования, где каждый проход через цикл, называется шагом моделирования. В течение каждого шага моделирования, Simulink выполняет каждый из блоков модели в порядке, определенном в течение инициализации. Для каждого блока, Simulink вызывает Callback функции модели, которые вычисляют состояния блока, производные, и выходы для  текущего  времени сэмплирования. Это продолжается, пока моделирование не закончено.

Рисунок ниже иллюстрирует стадии моделирования.

Рисунок 1-2: Как Simulink выполняет моделирование.


Методы Callback S-функции

S-функция включает набор методов callback S-функции , которые исполняют задачи, требуемые в каждой стадии моделирования. В течение моделирования модели, на каждой стадии моделирования, Simulink вызывает соответствующие методы для каждого блока S-fфункции в модели. Задачи, выполненные методами S-функции включают: