Этот пример показывает, как вызвать функцию Simulink®, когда сущность вводит запоминающий элемент пользовательского блока дискретной системы событий, и изменить атрибуты сущности. Для получения дополнительной информации о вызывании функций Simulink от блока MATLAB System, смотрите, Вызывают Функции Simulink из MATLAB System Block (Simulink).
Чтобы представлять это поведение, авторский блок сгенерирован с одним входом, одним выводом и одним запоминающим элементом. Для получения дополнительной информации о создании пользовательского блока системы хранения сущности, смотрите Сущности Задержки с Пользовательским Блоком системы хранения Сущности.
См. Код, который Вызывает Функцию Simulink, чтобы Изменить Атрибуты Сущности
Задайте имя функции Simulink, которая будет названа в дискретной системе событий object™ использованием метода getSimulinkFunctionNamesImpl
.
function name = getSimulinkFunctionNamesImpl(obj) % Declare the name of the Simulink Function. name = {'assignData'}; end
Имя функции Simulink объявляется как assignData
.
Вызовите assignData
в действии события записи.
function [entity,event] = CarEntry(obj,storage,entity,source) % Assign data when an entity enters the storage. entity.Attribute1 = assignData(); coder.extrinsic('fprintf'); fprintf('Entity Attribute Value: %f\n', entity.Attribute1); event = obj.eventForward('output', 1, obj.Delay); end
Создайте модель с помощью блока Entity Generator, блока MATLAB Discrete-Event System и блока Entity Terminator.
Откройте блок MATLAB Discrete-Event System и установите Discrete-event System object name на CustomEntityStorageBlockSLFunc
.
Выведите статистическую величину Number of entities departed, d от блока Entity Generator и соедините его с осциллографом.
Добавьте Функциональный блок Simulink в свою модель.
На Функциональном блоке Simulink дважды кликните функциональную подпись и введите y = assignData()
.
В Функциональном блоке Simulink добавьте блок Uniform Random Number и измените его параметр Sample time на -1
.
Моделируйте модель. Осциллограф отображается, сущности 3
отбыли из блока Entity Generator.
Диагностическое Средство просмотра отображает случайные значения атрибута, присвоенные сущностям 3
, когда они вводят устройство хранения данных.
entry
| getEntityPortsImpl
| getEntityStorageImpl
| getEntityTypesImpl
| matlab.DiscreteEventSystem
| matlab.System