exponenta event banner

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

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

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

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

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

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

Определение времени между поколениями

Блок «Генератор сущностей» настраивается путем указания критериев, используемых для определения времени межгенерации создаваемых сущностей. Можно создавать объекты:

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

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

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

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

  • Dialog

    Параметр Period используется для периодического изменения времени между поколениями.

  • Signal port

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

  • MATLAB action

    Включает поле действия Время между поколениями, в котором вводится код MATLAB ® для настройки времени между поколениями.

Периодически варьировать времена между поколениями

  1. В новой модели из библиотеки SimEvents ® перетащите блоки «Генератор объектов», «Терминатор объектов» и «Область».

  2. На вкладке «Создание объекта» в генераторе объектов задайте для параметра «Источник времени» значение Dialog.

  3. На вкладке «Статистика» блока «Терминатор сущностей» установите флажок «Количество поступивших сущностей».

  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 перетащите блоки «Генератор объектов» и «Терминатор объектов». Из библиотеки Simulink ® добавьте блоки Sine Wave и Scope.

  2. На вкладке «Создание объекта» в генераторе объектов задайте для параметра «Источник времени» значение Signal port.

    В блоке генератора объектов появится новый сигнальный порт.

  3. На вкладке «Статистика» блока «Терминатор сущностей» установите флажок «Количество поступивших сущностей».

  4. Дважды щелкните блок синусоидальной волны. По умолчанию первое значение блока синусоидальной волны равно 0. Чтобы добавить постоянное значение к синусу для получения выходного сигнала этого блока, измените параметр смещения на другое значение, например: 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.

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

    Обратите внимание на заглавную часть E сигнальной линии от блока синусоидальной волны до блока генератора объектов. Этот значок указывает на переход от системы на основе времени к системе с дискретными событиями.

Настройка вариации времен межпоколенческого взаимодействия

  1. В новой модели из библиотеки SimEvents перетащите блоки «Генератор объектов», «Терминатор объектов» и «Область».

  2. На вкладке «Создание объекта» в генераторе объектов задайте для параметра «Источник времени» значение MATLAB action.

    В блоке «Генератор объектов» появится новое поле действия «Время межгенерации».

  3. Чтобы настроить время между поколениями для модели, в поле Действие по времени между поколениями введите код MATLAB, например:

    dt = rand();

    Примечание

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

  4. На вкладке «Статистика» блока «Терминатор сущностей» установите флажок «Количество поступивших сущностей».

  5. Подключите эти блоки и смоделируйте модель.

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

Чтобы создать объекты с экспоненциальным случайным временем поступления, в поле Действие по времени между поколениями введите код MATLAB, который использует mean функция, например:

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

Scope block shows exponential random entity arrival times.

См. также

| | | | | |

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

Подробнее