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

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

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

  • Выбранный от случайного распределения или основанного на времени сигнала

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

Например, если блок генерирует сущности в 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®, чтобы настроить времена межгенерации.

Периодически варьируйтесь Intergeneration Times

  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.

  5. Варьируйтесь период к 8 и симулируйте модель снова. Наблюдайте изменение в осциллографе.

Используйте сигнал варьироваться Intergeneration Times

  1. В новой модели, от библиотеки SimEvents, перетаскивают блоки Entity Terminator и Entity Generator. От 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. Соедините эти блоки и симулируйте модель.

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

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

Настройте изменение Intergeneration Times

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

  2. Во вкладке Entity Generation Entity Generator, установленного параметр Time source на MATLAB action.

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

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

    dt = rand();

    Примечание

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

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

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

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

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

Смотрите также

| | | | | |

Связанные примеры

Больше о