Simulink-функции(S-функции, S-functions) являются описанием блока на одном из языков программирования: MATLAB, C, C++, Ada, или Fortran. Набор стандартных блоков Simulink, достаточно обширен, однако в практике моделирования встречаются ситуации, когда нужного блока нет, либо структурное моделирование делает модель слишком сложной. В этом случае необходимо использовать технологию S-функций для создания нужного блока. С помощью языков программирования пользователь может создать описание сколь угодно сложного блока и подключить его к Simulink-модели, при этом с точки зрения взаимодействия пользователя с моделью, блок на основе S-функцииничем не отличается от стандартного библиотечного блока Simulink. Создаваемые блоки могут быть непрерывными, дискретными или гибридными. S-функции, созданные на C, C++, AdaилиFortran компилируются в исполняемые (*.dll) файлы, за счет чего обеспечивается повышенная скорость выполнения таких блоков. Такие S-функцииобладают еще и дополнительными возможностями, которые включают работу с разными типами данных (целыми, действительными и комплексными числами различной степени точности), использование матриц в качестве входных и выходных переменных (MATLAB S-функции могут оперировать только векторами в качестве входных и выходных переменных), а также больший набор внутренних функций (сallback-методов).
Чаще всего S-функции используются при создании новых библиотечных блоков, блоков, обеспечивающих взаимодействие Simulink с аппаратными средствами компьютера, при создании блоков на основе математических уравнений, блоков реализующих анимационные возможности MATLAB, а также при подключении к модели Simulink существующего программного кода языков высокого уровня.
16.1.Блок S-function
S-функцияподключается к модели Simulinkс помощью библиотечного блока S-function(библиотека Functions&Tables). Нарис. 16.1 показано окно модели с блоком S-functionи его окно диалога.
Рис. 16.1 Блок S-functionи его окно диалога
Параметрами блока являются:
S-function name – Имя S-функции. Имя S-функции не должно совпадать с именем модели (mdl-файла).
S-function parameters –Параметры S-функции, передаваемые в нее через окно диалога. Параметры записываются в окне диалога в том же порядке, что и в заголовке S-функции.