Вызовите функцию Simulink от блока Дискретной Системы событий MATLAB

Этот пример показывает, как вызвать функцию Simulink®, когда сущность вводит запоминающий элемент пользовательского блока дискретной системы событий, и изменить атрибуты сущности. Для получения дополнительной информации о вызывании функций Simulink от блока MATLAB System, смотрите, Вызывают Функции Simulink из MATLAB System Block (Simulink).

Чтобы представлять это поведение, авторский блок сгенерирован с одним входом, одним выводом и одним запоминающим элементом. Для получения дополнительной информации о создании пользовательского блока системы хранения сущности, смотрите Сущности Задержки с Пользовательским Блоком системы хранения Сущности.

 См. Код, который Вызывает Функцию Simulink, чтобы Изменить Атрибуты Сущности

Измените атрибуты сущности

  1. Задайте имя функции Simulink, которая будет названа в дискретной системе событий object™ использованием метода getSimulinkFunctionNamesImpl.

        function name = getSimulinkFunctionNamesImpl(obj)
            % Declare the name of the Simulink Function.
            name = {'assignData'};        
        end

    Имя функции Simulink объявляется как assignData.

  2. Вызовите 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

Создайте модель

  1. Создайте модель с помощью блока Entity Generator, блока MATLAB Discrete-Event System и блока Entity Terminator.

  2. Откройте блок MATLAB Discrete-Event System и установите Discrete-event System object name на CustomEntityStorageBlockSLFunc.

  3. Выведите статистическую величину Number of entities departed, d от блока Entity Generator и соедините его с осциллографом.

  4. Добавьте Функциональный блок Simulink в свою модель.

    1. На Функциональном блоке Simulink дважды кликните функциональную подпись и введите y = assignData().

    2. В Функциональном блоке Simulink добавьте блок Uniform Random Number и измените его параметр Sample time на -1.

  5. Моделируйте модель. Осциллограф отображается, сущности 3 отбыли из блока Entity Generator.

  6. Диагностическое Средство просмотра отображает случайные значения атрибута, присвоенные сущностям 3, когда они вводят устройство хранения данных.

Смотрите также

| | | | |

Похожие темы