В этом примере показано, как вызвать функцию Simulink®, когда сущность вводит запоминающий элемент пользовательского блока дискретной системы событий, и изменить атрибуты сущности. Для получения дополнительной информации о вызывании функций Simulink от блока MATLAB System, смотрите, Вызывают Функции Simulink из MATLAB System Block.
Чтобы представлять это поведение, пользовательский блок сгенерирован с одним входом, одним выходом и одним запоминающим элементом. Для получения дополнительной информации о создании пользовательского блока системы хранения сущности, смотрите Сущности Задержки с Пользовательским Блоком системы хранения Сущности.
См. Код, который Вызывает Функцию 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 Function в свою модель.
На блоке Simulink Function дважды кликните функциональную подпись и введите y = assignData()
.
В блоке Simulink Function добавьте блок Uniform Random Number и измените его параметр Sample time в -1
.
Симулируйте модель. Осциллограф отображает 3
сущности отбыли из блока Entity Generator.
Диагностическое Средство просмотра отображает случайные значения атрибута, присвоенные 3
сущности, когда они вводят устройство хранения данных.
entry
| getEntityPortsImpl
| getEntityStorageImpl
| getEntityTypesImpl
| matlab.DiscreteEventSystem
| matlab.System