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

Создание объектов, представляющих транспортные средства, прибывающие на объект обслуживания. Объекты несут данные, представляющие размеры и свойства транспортного средства в виде вложенных объектов шины. Размеры транспортного средства включают высоту и ширину транспортного средства в метрах, а свойства транспортного средства включают его возраст и текущий пробег. Дополнительные сведения об использовании редактора шины см. в разделе Создание и указание объектов Simulink.Bus.
На вкладке «Моделирование» в разделе «Проектирование» выберите и откройте редактор шины.
В редакторе шины выберите «Файл» > «Добавить шину».
Создайте новый объект шины и задайте свойству Name значение Dimensions.
Выберите «Файл» > «Добавить/Вставить элемент шины» для создания двух элементов шины. Height и Width.
Создайте другой объект шины и задайте свойству Name значение Properties. Добавить три элемента шины Station, Year, и Mileage.
Создайте другой объект шины и задайте свойству Name значение Vehicle.
Добавьте два элемента шины и задайте для их свойств Name значение VehicleDimensions и VehicleProperties. Для свойств типа данных используйте Bus: <object name> шаблон, замена <object name> с Dimensions и Properties.

Добавьте блок генератора объектов. Дважды щелкните на блоке «Генератор объектов».
Выберите вкладку Тип объекта (Entity type). Задайте для типа объекта значение Bus object и имя типа сущности как Vehicle.
Vehicle - объект шины, созданный редактором шины.
Выберите вкладку Действия события. В поле Создать действие введите:
% 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]);
Транспортные средства прибывают на объект со случайными размерами и свойствами.
Добавьте блок очереди объектов и переименуйте его в очередь транспортных средств.
На вкладке «Main» установите значение «Capacity» (Емкость). Inf.
Выберите вкладку Действия события. В поле Действие ввода введите этот код для определения выбора станции обслуживания для транспортных средств.
% 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
Транспортные средства помещаются в очередь для направления на соответствующую сервисную станцию, а размеры и свойства транспортных средств используются для выбора соответствующей сервисной станции.
Добавьте блок коммутатора вывода объектов.
Установите для параметра Number of output ports значение 3.
Установите критерий переключения в значение From attribute.
Задайте для имени атрибута Switch значение VehicleProperties.Station.
Блок переключателя вывода объектов направляет транспортные средства на станции на основе указанного Station атрибут.
Добавьте блок сервера сущностей, представляющий станцию обслуживания. Переименуйте блок Service Station 1.
На вкладке Main установите для параметра Service time source значение MATLAB action.
В поле Действие времени обслуживания введите:
if entity.VehicleProperties.Year > 2015 dt = 1; else dt = 5; end
Предполагается, что для более старых транспортных средств время обслуживания является более длительным.
На вкладке Статистика (Statistics) выберите Количество удаляемых объектов (Number of entities departed), d statistic (Статистика) и подключите его к области.
Подключите сервисную станцию 1 к блоку терминатора объекта.
Выполните те же действия, чтобы создать сервисную станцию 2 и сервисную станцию 3 и подключить их, как показано на рисунке.
Увеличение времени моделирования до 100 и запустите моделирование.
Проверьте количество транспортных средств, обслуживаемых на станции обслуживания 1.

Проверьте количество транспортных средств, обслуживаемых на станции обслуживания 2.

Проверьте количество транспортных средств, обслуживаемых на станции обслуживания 3.

Генератор объектов | Переключатель вывода объекта | Очередь сущностей | Сервер сущностей