Stateflow.SimulationData.State

Действие состояния в процессе моделирования

Описание

Используйте Stateflow.SimulationData.State регистрировать действие состояния в процессе моделирования.

Создание

  1. В Редакторе Stateflow® выберите состояние.

  2. Во вкладке Simulation, в Prepare, выбирают Log Self Activity. В качестве альтернативы в Property Inspector, под Logging, устанавливают флажок Log self activity.

Свойства

развернуть все

Логгирование имени состояния в виде символьного массива. По умолчанию имя логгирования для состояния является иерархическим именем с помощью периода (.) разделить каждый уровень в иерархии состояний. Чтобы присвоить более короткое имя к состоянию, в Property Inspector, устанавливают Logging Name на Custom и введите пользовательское имя логгирования.

Типы данных: char

Блок path для исходного блока в виде Simulink.SimulationData.BlockPath объект.

Типы данных: Simulink.SimulationData.BlockPath

Действие состояния в виде a timeseries объект. Значения данных представляют, активно ли состояние (1) или не активный (0). Временные стоимости соответствуют времени симуляции.

Типы данных: timeseries

Функции объекта

plotПостройте выходные данные симуляции в Инспекторе Данных моделирования

Примеры

свернуть все

  1. Откройте sf_semantics_hotel_checkin модель.

  2. Откройте Hotel график.

  3. Откройте панель Символов. Во вкладке Simulation, в Prepare, нажимают Symbols Pane.

  4. Сконфигурируйте Dining_area состояние для логгирования.

    • В редакторе Stateflow выберите Dining_area состояние.

    • Во вкладке Simulation, под Prepare, выбирают Log Self Activity.

      В Property Inspector, под Logging, устанавливают флажок Log self activity.

    • По умолчанию имя логгирования для этого состояния является иерархическим именем сигнала Check_in.Checked_in.Executive_suite.Dining_area. Чтобы присвоить более короткое имя к состоянию, установите Logging Name на Custom и введите Dining Room.

  5. Возвратитесь к модели Simulink®.

  6. Симулируйте модель. После запуска симуляции зарегистрируйтесь в отеле путем переключения первого переключателя и закажите обслуживание номеров многократно путем переключения второго переключателя. В процессе моделирования Stateflow сохраняет записанные данные в Simulink.SimulationData.Dataset объект логгирования сигнала. Именем по умолчанию объекта логгирования сигнала является logsout. Для получения дополнительной информации смотрите, что Данные сигнала Экспорта Используют Логгирование Сигнала.

  7. Остановите симуляцию.

  8. Получить доступ к объекту логгирования сигнала, в командной строке MATLAB®, введите:

    logsout = out.logsout
    logsout = 
    
    Simulink.SimulationData.Dataset 'logsout' with 1 element
    
                            Name         BlockPath                        
                            ___________  ________________________________ 
        1  [1x1 State]      Dining Room  sf_semantics_hotel_checkin/Hotel

  9. Чтобы получить доступ к регистрируемым элементам, используйте get метод.

    diningLog = logsout.get('Dining Room')
    diningLog = 
    
      Stateflow.SimulationData.State
      Package: Stateflow.SimulationData
    
      Properties:
             Name: 'Dining Room'
        BlockPath: [1×1 Simulink.SimulationData.BlockPath]
           Values: [1×1 timeseries]
    

  10. Чтобы получить доступ к записанным данным и время каждого регистрируемого элемента, используйте Values.Data и Values.Time свойства. Например, расположите записанные данные в табличной форме при помощи table функция.

    Tbl = table(diningLog.Values.Time,diningLog.Values.Data);
    Tbl.Properties.VariableNames = {'Time','Data'}
    Tbl =
    
      6×2 table
    
           Time       Data
        __________    ____
    
                 0     0  
        1.8607e+06     1  
        1.9653e+06     0  
        1.9653e+06     1  
        1.9653e+06     0  
        2.2912e+06     1  
    

Введенный в R2017b