Resource Pool

Объедините ресурсы сущности

  • Библиотека:
  • SimEvents/Управление сущностями

    SimEvents

  • Resource Pool block

Описание

Блок Resource Pool задает ресурсы, которые сущности могут использовать во время симуляции модели. Используйте блоки Resource Acquirer и Resource Releaser для работы с этими ресурсами.

Инициализируйте блок с заданным количеством доступных ресурсов. Затем:

  • Используйте один или несколько блоков Resource Acquirer для резервирования этих ресурсов.

  • Используйте блок Resource Releaser, чтобы вернуть ресурсы в этот блок для использования в будущем.

Можно определить видимость доступных ресурсов в иерархии модели. Вы можете выбрать Global или Scoped ресурсы в пуле.

  • Global - На ресурсы можно ссылаться из любого места иерархии модели.

  • Scoped - Ресурсы видны локально и могут ссылаться только из подсистемы, которая содержит блок Resource Pool и все подсистемы внутри.

Порты

Вход

расширить все

Входной порт сущности для изменения объема ресурса. Вход не может быть отрицательным значением.

Зависимости

Чтобы включить этот порт, выберите Change amount through control port как Resource amount source.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Выход

расширить все

Количество используемых ресурсов.

Зависимости

Чтобы включить этот порт, щелкните вкладку Statistics и выберите поле, помеченное Amount in use, u.

Типы данных: double

Среднее время ожидания использования пула.

Зависимости

Чтобы включить этот порт, щелкните вкладку Statistics и выберите поле, помеченное Average utilization, util.

Типы данных: double

Количество доступных ресурсов.

Зависимости

Чтобы включить этот порт, щелкните вкладку Statistics и выберите поле, помеченное Amount available, avail.

Типы данных: double

Параметры

расширить все

Введите имя ресурса сущности.

Программное использование

Параметры блоков: ResourceName
Тип: Вектор символов
Значения: 'Resource1' | вектор символов
По умолчанию: 'Resource1'

Выберите гранулярность использования ресурса.

  • Discrete unit - Используйте шаг полного числа.

  • Fractional amount - Используйте дробный шаг.

Программное использование

Параметры блоков: ResourceGranularity
Тип: Вектор символов
Значения: 'Discrete unit' | 'Fractional amount'
По умолчанию: 'Discrete unit'

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

  • Снимите этот флажок, чтобы предотвратить возврат этого ресурса в пул ресурсов после релиза. В этом случае, когда ресурс освобождается, он больше не доступен в пуле ресурсов. Примером такого ресурса является еда в ресторане, которая не переиспользуется при потреблении.

Программное использование

Параметры блоков: ReusableUponRelease
Тип: Вектор символов
Значения: 'on' | 'off'
По умолчанию: 'off'

Выберите источник суммы ресурса.

  • Dialog

  • Change amount through control port

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

Программное использование

Параметры блоков: ResourceAmountSource
Тип: Вектор символов
Значения: 'Dialog' | 'Change amount through control port'
По умолчанию: 'Dialog'

Введите объем ресурса.

Зависимости

Выберите Dialog чтобы включить Resource amount source.

Программное использование

Параметры блоков: ResourceAmount
Тип: Вектор символов
Значения: '10' | скаляр
По умолчанию: '10'

Введите начальный объем ресурса.

Зависимости

Выберите Change amount through control port чтобы включить Resource amount source.

Программное использование

Параметры блоков: InitialResourceAmount
Тип: Вектор символов
Значения: '10' | скаляр
По умолчанию: '10'

Выберите поведение ресурсов, полученных из этого пула, следующим Global или Scoped.

Когда Global выбран:

  • Имена пула ресурсов должны быть уникальными в модели.

  • Все ресурсы имеют глобальные возможности, и они могут ссылаться из любого места иерархии модели.

  • Сущность, несущая ресурс, полученный из этого блока, должна явно отказаться от ресурса.

  • При уничтожении сущности связанные с ней ресурсы возвращаются в пул, если установлен флажок Reusable upon release.

Когда Scoped выбран:

  • Ресурсы видны локально и могут ссылаться только из подсистемы, которая содержит блок Resource Pool и все подсистемы внутри.

  • Имена пула ресурсов должны быть уникальными в иерархии модели, где виден Resource Pool блок.

  • Сущность, несущая ресурс, полученный из этого блока, должна явно отказаться от ресурса.

  • Когда сущность покидает возможности, все ресурсы, которые являются локальными для этих возможностей и еще не деблокированы, автоматически освобождаются. Если Reusable upon release флажок установлен, они возвращаются в пул.

Программное использование

Параметры блоков: InitialResourceAmount
Тип: Вектор символов
Значения: '10' | скаляр
По умолчанию: '10'

Выводит количество ресурсов, которые блок приобрел и еще не выпустил. Для примера, если пул ресурсов имеет 10 ресурсы, и сущность приобретает все из них, этот порт показывает 10. Когда блок освобождает ресурсы, этот порт показывает 0.

Программное использование

Параметры блоков: AmountInUse
Тип: Вектор символов
Значения: 'on' | 'off'
По умолчанию: 'off'

Выводит среднее использование ресурсов.

Программное использование

Параметры блоков: AverageUtilization
Тип: Вектор символов
Значения: 'on' | 'off'
По умолчанию: 'off'

Выводит объем имеющихся ресурсов.

Программное использование

Параметры блоков: AmountAvailable
Тип: Вектор символов
Значения: 'on' | 'off'
По умолчанию: 'off'

Примеры моделей

Введенный в R2016a