В этом примере показано, как считать сущности, которые прибывают в блок Entity Terminator некумулятивным способом путем сброса счетчика в каждый раз момент.
Чтобы открыть пример, смотрите Example Model for Noncumulative Entity Count
.
Добавьте два блока Entity Generator, блок Entity Input Switch, блок Entity Terminator и блок Simulink Function от библиотеки SimEvents® до новой модели. Для получения дополнительной информации смотрите Simulink Function.
Соедините блоки как показано в схеме.
Дважды кликните блок Entity Generator1. Во вкладке Entity generation, набор Period к 2
.
В модели, 2
сущности прибывают в блок Entity Terminator во время 0
, 2, 4
, 6
, 8
, 10
и
1
сущность прибывает во время 1
, 3, 5
, 7
, 9
.
Дважды кликните функциональную подпись на блоке Simulink Function и введите nonCumCount()
.
Дважды кликните блок Simulink Function. Добавьте блок Digital Clock из библиотеки Simulink > Sources. Установите параметр Sample time на -1
для наследованного шага расчета.
Добавьте блок MATLAB Function. Дважды кликните его и введите этот код.
function y = fcn(curtime) % Define count for counting and prevtime for previous time stamp persistent count prevtime; % Check if prevtime is empty and initiate the count if isempty(prevtime) prevtime = curtime; count = 0; end % Increase count by 1 for equal time stamps. if isequal(curtime, prevtime) count = count + 1; % Reset count to 1 if two consequitive time stamps are not identical else prevtime = curtime; count = 1; end % Output count for visualization y = count; end
Соедините выход блока MATLAB Function с блоком Simulink® Scope.
В родительской модели дважды кликните блок Entity Terminator. В поле Entry action вкладки Event actions введите этот код.
nonCumCount();
Симулируйте модель и откройте блок Scope в блоке Simulink Function.
Измените настройки графического вывода блока Scope путем щелчка правой кнопкой по графику и выбора Style. Выберите no line
для Line и circle
для параметров Marker.
Заметьте, что блок иллюстрирует, что некумулятивная сущность значит сущности, прибывающие блок Entity Terminator. Блок также иллюстрирует мгновенное прибытие сущности каждый раз.
Чтобы считать количество событий, которые происходят мгновенно, используйте nonCumCount()
в любом Event actions.
Entity Gate | Entity Generator | Entity Input Switch | Entity Terminator