Сгенерируйте сущности, несущие вложенные структуры данных

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

Средство имеет три сервисных станции, представленные тремя блоками Entity Server. Транспортные средства, прибывающие в средство, поставлены в очередь и затем направлены к одной из этих трех сервисных станций на основе их размера и пробега. Это принято, что более старые транспортные средства требуют большего количества времени обслуживания.

  1. Создайте сущности, которые представляют транспортные средства, прибывающие в сервисное средство. Сущности несут данные, представляющие размерности транспортного средства и свойства, когда вложенная шина возражает. Размерности транспортного средства включают высоту транспортного средства и ширину в метрах, и свойства транспортного средства включают его возраст и текущий пробег. Для получения дополнительной информации об использовании Редактора Шины смотрите, Создают и Задают Объекты Simulink.Bus.

    1. Под вкладкой Modeling, в разделе Design, выборе и открывают Bus Editor.

    2. В Редакторе Шины выберите File> Add Bus.

    3. Создайте новый объект шины и установите свойство Name на Dimensions.

    4. Выберите File > Add/Insert BusElement, чтобы создать два элемента шины, Height и Width.

    5. Создайте другой объект шины и установите свойство Name на Properties. Добавьте три элемента шины Stationгод, и Mileage.

    6. Создайте другой объект шины и установите свойство Name на Vehicle.

    7. Добавьте два элемента шины и установите их свойства Name на VehicleDimensions и VehicleProperties. Для их свойств Data type используйте Bus: <object name> обработайте по шаблону, заменив <object name> с Dimensions и Properties.

  2. Добавьте блок Entity Generator. Дважды кликните блок Entity Generator.

    1. Выберите вкладку Entity type. Установите Entity type на Bus object и Entity type name как Vehicle.

      Vehicle объект шины, созданный Редактором Шины.

    2. Выберите вкладку 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]);

      Транспортные средства прибывают в средство со случайными размерностями и свойствами.

  3. Добавьте блок Entity Queue и переименуйте его Очередь на Транспортное средство.

    1. В 'вкладке Main, набор Capacity к Inf.

    2. Выберите вкладку 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

      Транспортные средства ставятся в очередь, чтобы быть направленными к правильной сервисной станции и размерностям транспортного средства, и свойства используются, чтобы выбрать соответствующую сервисную станцию.

  4. Добавьте блок Entity Output Switch.

    1. Установите Number of output ports на 3.

    2. Установите Switching criterion на From attribute.

    3. Установите Switch attribute name на VehicleProperties.Station.

    Блок Entity Output Switch направляет транспортные средства к станциям на основе заданного Station атрибут.

  5. Добавьте блок Entity Server, который представляет сервисную станцию. Переименуйте блок Service Station 1.

    1. Во вкладке Main, набор Service time source к MATLAB action.

    2. В поле Service time action, введите:

      if entity.VehicleProperties.Year > 2015
          dt = 1;
      else
          dt = 5;
      end

      Это принято, что время обслуживания транспортного средства более длительно для более старых транспортных средств.

    3. Во вкладке Statistics выберите статистическую величину Number of entities departed, d и соедините его с осциллографом.

  6. Соедините Сервисную станцию 1 с блоком Entity Terminator.

  7. Выполните те же шаги, чтобы создать Сервисную станцию 2 и Сервисную станцию 3 и соединить их как показано.

  8. Увеличьте время симуляции до 100 и запустите симуляцию.

    Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 1.

    Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 2.

    Наблюдайте количество транспортных средств, подаваемых в Сервисной станции 3.

Смотрите также

| | |

Похожие темы