exponenta event banner

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

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

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

 См. Код вызова функции Simulink для изменения атрибутов объекта

Изменить атрибуты объекта

  1. Определите имя функции Simulink, вызываемой в object™ дискретных событий System, используя 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. Создайте модель с помощью блока генератора объектов, блока системы дискретных событий MATLAB и блока терминатора объектов.

  2. Откройте блок системы дискретных событий MATLAB и установите имя объекта системы дискретных событий в значение CustomEntityStorageBlockSLFunc.

  3. Выведите статистическую информацию о количестве отклоненных объектов из блока генератора объектов и подключите его к области.

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

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

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

  5. Моделирование модели. Отображается область 3 объекты удалились из блока «Генератор объектов».

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

См. также

| | | | |

Связанные темы