Этот пример показывает, как считать сущности, которые прибывают в блок Entity Terminator некумулятивным способом путем сброса счетчика в каждый раз момент.
Чтобы открыть пример, смотрите Example Model for Noncumulative Entity Count
.
Добавьте два блока Генератора Сущности, Входной блок switch Сущности, блок Entity Terminator и Функциональный блок Simulink от библиотеки SimEvents® до новой модели. Для получения дополнительной информации смотрите Функцию Simulink.
Соедините блоки как показано в схеме.
Дважды кликните блок Entity Generator1. Во вкладке Entity generation, набор Period к 2
.
В модели сущности 2
прибывают в блок Entity Terminator во время, 0
, 2
, 4
, 6
, 8
, 10
и сущность 1
прибывают во время 1
, 3
, 5
, 7
, 9
.
Дважды кликните функциональную подпись на Функциональном блоке Simulink и введите nonCumCount()
.
Дважды кликните Функциональный блок Simulink. Добавьте блок 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.
Измените настройки графического вывода блока Scope путем щелчка правой кнопкой по графику и выбора Style. Выберите no line
для Line и circle
для параметров Marker.
Заметьте, что блок иллюстрирует, что некумулятивная сущность значит сущности, прибывающие блок Entity Terminator. Блок также иллюстрирует мгновенное прибытие сущности каждый раз.
Чтобы считать количество событий, которые происходят мгновенно, используйте nonCumCount()
в любом Event actions.
Логический элемент сущности | Генератор сущности | Входной переключатель сущности | Терминатор сущности