Этот пример показывает, как исследовать пропускную способность сервисного средства автомобиля с помощью Редактора Шины Simulink®, чтобы создать вложенные структуры данных, которые несут сущности.
Средство имеет три сервисных станции, представленные тремя блоками Сервера Сущности. Автомобили, прибывающие в средство, поставлены в очередь и затем направлены к одной из этих трех сервисных станций на основе их размера и пробега. Это принято, что более старые автомобили требуют большего количества времени обслуживания.
Создайте сущности, которые представляют автомобили, прибывающие в сервисное средство. Сущности несут данные, представляющие размерности автомобиля и свойства, когда вложенная шина возражает. Размерности автомобиля включают высоту автомобиля и ширину в метрах, и свойства автомобиля включают его возраст и текущий пробег. Для получения дополнительной информации об использовании Редактора Шины смотрите, Создают Объекты Шины с Редактором Шины (Simulink).
Выберите Edit> Bus Editor.
В Редакторе Шины выберите File> Add Bus.
Создайте новый объект шины и установите свойство Name на Dimensions
.
Выберите File > Insert BusElement, чтобы создать два элемента шины, Height
и Width
.
Создайте другой объект шины и установите свойство Name на Properties
. Добавьте три элемента шины Station
, Year
и 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
Автомобили ставятся в очередь, чтобы быть направленными к правильной сервисной станции и размерностям автомобиля, и свойства используются, чтобы выбрать соответствующую сервисную станцию.
Добавьте блок switch Сущности Вывод.
Установите Number of output ports на 3
.
Установите Switching criterion на From attribute
.
Установите Switch attribute name на VehicleProperties.Station
.
Блок 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.
Генератор сущности | Переключатель сущности Вывод | Очередь сущности | Сервер сущности