Вызов функции Simulink из блока MATLAB Discrete-Event System

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

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

 Смотрите код, который вызывает функцию 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 Function к модели.

    1. На блоке Simulink Function дважды кликните сигнатуру функции и введите y = assignData() .

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

  5. Симулируйте модель. Область возможностей отображает 3 сущности покинули блок Entity Generator.

  6. Diagnostic Viewer отображает случайные значения атрибутов, присвоенные 3 сущности при входе в хранилище.

См. также

| | | | |

Похожие темы