В этом примере показано, как исследовать пропускную способность сервисного средства транспортного средства с помощью Редактора Шины Simulink®, чтобы создать вложенные структуры данных, которые несут сущности.
Средство имеет три сервисных станции, представленные тремя блоками Entity Server. Транспортные средства, прибывающие в средство, поставлены в очередь и затем направлены к одной из этих трех сервисных станций на основе их размера и пробега. Это принято, что более старые транспортные средства требуют большего количества времени обслуживания.
Создайте сущности, которые представляют транспортные средства, прибывающие в сервисное средство. Сущности несут данные, представляющие размерности транспортного средства и свойства, когда вложенная шина возражает. Размерности транспортного средства включают высоту транспортного средства и ширину в метрах, и свойства транспортного средства включают его возраст и текущий пробег. Для получения дополнительной информации об использовании Редактора Шины смотрите, Создают и Задают Объекты Simulink.Bus.
Под вкладкой Modeling, в разделе Design, выборе и открывают Bus Editor.
В Редакторе Шины выберите File> Add Bus.
Создайте новый объект шины и установите свойство Name на Dimensions
.
Выберите File > Add/Insert BusElement, чтобы создать два элемента шины, Height
и Width
.
Создайте другой объект шины и установите свойство Name на Properties
. Добавьте три элемента шины Station
год
, и Mileage
.
Создайте другой объект шины и установите свойство Name на Vehicle
.
Добавьте два элемента шины и установите их свойства Name на VehicleDimensions
и VehicleProperties
. Для их свойств Data type используйте Bus: <object name>
обработайте по шаблону, заменив <object name>
с Dimensions
и Properties
.
Добавьте блок Entity Generator. Дважды кликните блок Entity Generator.
Выберите вкладку Entity type. Установите Entity type на Bus object
и Entity type name как Vehicle
.
Vehicle
объект шины, созданный Редактором Шины.
Выберите вкладку Event actions. В поле Generate action, введите:
% Vehicle Dimensions entity.VehicleDimensions.Height = 1+rand(); entity.VehicleDimensions.Width = 1+rand(); % Vehicle Properties entity.VehicleProperties.Year = randi([1996 2018]); entity.VehicleProperties.Mileage = randi([50000 150000]);
Транспортные средства прибывают в средство со случайными размерностями и свойствами.
Добавьте блок Entity Queue и переименуйте его Очередь на Транспортное средство.
В 'вкладке Main, набор Capacity к Inf
.
Выберите вкладку Event actions. В поле Entry action введите этот код, чтобы задать выбор сервисной станции для транспортных средств.
% If the height and width of the vehicle are greater than 1.5 m, select Station 1. if entity.VehicleDimensions.Width > 1.5 && entity.VehicleDimensions.Height > 1.5 entity.VehicleProperties.Station = 1; % Else, if the vehicle's mileage is greater than 90000 km, select Station 2. else if entity.VehicleProperties.Mileage > 90000 entity.VehicleProperties.Station = 2; % If the vehicle's mileage is less than 90000 km, select Station 3. else entity.VehicleProperties.Station = 3; end end
Транспортные средства ставятся в очередь, чтобы быть направленными к правильной сервисной станции и размерностям транспортного средства, и свойства используются, чтобы выбрать соответствующую сервисную станцию.
Добавьте блок Entity Output Switch.
Установите Number of output ports на 3
.
Установите Switching criterion на From attribute
.
Установите Switch attribute name на VehicleProperties.Station
.
Блок Entity Output Switch направляет транспортные средства к станциям на основе заданного Station
атрибут.
Добавьте блок Entity Server, который представляет сервисную станцию. Переименуйте блок Service Station 1.
Во вкладке Main, набор Service time source к MATLAB action
.
В поле Service time action, введите:
if entity.VehicleProperties.Year > 2015 dt = 1; else dt = 5; end
Это принято, что время обслуживания транспортного средства более длительно для более старых транспортных средств.
Во вкладке Statistics выберите статистическую величину Number of entities departed, d и соедините его с осциллографом.
Соедините Сервисную станцию 1 с блоком Entity Terminator.
Выполните те же шаги, чтобы создать Сервисную станцию 2 и Сервисную станцию 3 и соединить их как показано.
Увеличьте время симуляции до 100
и запустите симуляцию.
Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 1.
Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 2.
Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 3.
Entity Generator | Entity Output Switch | Entity Queue | Entity Server