Задайте время межгенерации для сущностей

Время межгенерации является временным интервалом между последовательными сущностями, которые генерирует блок. У вас может быть процесс генерации, который:

  • Периодический

  • Дискретизируется из случайного распределения или основанного на времени сигнала

  • Из пользовательского кода

Для примера, если блок генерирует объекты при T = 50, T = 53, T = 60 и T = 60,1, то соответствующее время межгенерации равно 3, 7 и 0,1. После ухода каждой новой сущности блок определяет время межгенерации, которое представляет интервал, пока блок не сгенерирует следующую сущность.

Определите время межгенерации

Вы конфигурируете блок Entity Generator путем указания критериев, которые он использует для определения времени межгенерации для созданных им сущностей. Можно сгенерировать сущности:

  • Из случайного распределения

  • Периодически

  • В произвольные моменты времени

Используйте выпадающий список в параметре Time source блока Entity Generation, чтобы определить время межгенерации:

  • Dialog

    Использует параметр Period, чтобы периодически изменять время межгенерации.

  • Signal port

    Использует сигнал от внешнего блока, такого как Sine wave блок, чтобы изменить время межгенерации.

  • MATLAB action

    Включает поле Intergeneration time action, в которое вы вводите MATLAB® код для настройки времени межгенерации.

Периодически изменяйте времена интергенерации

  1. В новой модели, из SimEvents® библиотеку, перетащите Entity Generator, Entity Terminator и Scope блоки.

  2. На вкладке Entity Generation Entity Generator установите параметр Time source равным Dialog.

  3. На вкладке Statistics блока Entity Terminator установите флажок Number of entities arrived.

  4. Соедините эти блоки и симулируйте модель. Период равен 1.

    Model with an Entity Generator and an Entity Terminator block. Scope block shows that 11 entities arrives at the Entity Terminator block.

  5. Варьируйте период, чтобы 8 и снова симулируйте модель. Наблюдайте за изменением возможностей.

    Scope block that displays at time 0, 1 entity arrives at the Entity Terminator block. At time 8second entity arrives at the block.

Используйте сигнал, чтобы изменить время интергенерации

  1. В новой модели из библиотеки SimEvents перетащите блоки Entity Generator и Entity Terminator. Из Simulink® библиотека добавляет блоки Sine Wave и Scope.

  2. На вкладке Entity Generation Entity Generator установите параметр Time source равным Signal port.

    На блоке Entity Generator появляется новый сигнальный порт.

  3. На вкладке Statistics блока Entity Terminator установите флажок Number of entities arrived.

  4. Дважды кликните Sine Wave блок. По умолчанию первое значение блока Sine Wave 0. Чтобы добавить постоянное значение синуса, чтобы получить выход этого блока, измените параметр Bias на другое значение, например 1.5.

  5. Соедините эти блоки и симулируйте модель.

    Model with a Sine Wave, Entity Generator, and Entity Terminator block. Scope block shows that entity intergeneration times vary based on the sine wave values.

    После генерации каждой сущности блок Entity Generator считывает значение входного сигнала и использует это значение в качестве временного интервала до следующей генерации сущности.

    Заметьте E капитала на сигнальной линии от блока Sine Wave до блока Entity Generator. Этот значок указывает на переход от основанной на времени системы к системе дискретных событий.

Настройте изменение времён интергенерации

  1. В новой модели из библиотеки SimEvents перетащите блоки Entity Generator, Entity Terminator и Scope.

  2. На вкладке Entity Generation Entity Generator установите параметр Time source равным MATLAB action.

    На блоке Entity Generator появится новое Intergeneration time action поле.

  3. Чтобы настроить время межгенерации для модели, в поле Intergeneration time action введите код MATLAB, например:

    dt = rand();

    Примечание

    Для времени межгенерации необходимо задать фиксированное имя, dt. Вы не можете задать другое имя переменной для этого значения.

  4. На вкладке Statistics блока Entity Terminator установите флажок Number of entities arrived.

  5. Соедините эти блоки и симулируйте модель.

    Model with an Entity Generator, and an Entity Terminator block. Scope block shows random entity intergeneration times determined by the rand function.

Чтобы сгенерировать сущности с экспоненциальным случайным временем прибытия, в поле Intergeneration time action введите код MATLAB, который использует mean функция, например:

mean = 1;
dt = -mean*log(1-rand());

Scope block shows exponential random entity arrival times.

См. также

| | | | | |

Похожие примеры

Подробнее о