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

Этот пример показывает, как исследовать пропускную способность сервисного средства автомобиля с помощью Редактора Шины Simulink®, чтобы создать вложенные структуры данных, которые несут сущности.

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

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

    1. Выберите Edit> Bus Editor.

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

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

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

    5. Создайте другой объект шины и установите свойство Name на Properties. Добавьте три элемента шины Station, Year и 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. Добавьте блок switch Сущности Вывод.

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

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

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

    Блок 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.

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

| | |

Похожие темы