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

Путь блока для исходного блока, заданный как Simulink.SimulationData.BlockPath (Simulink) объект.

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

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

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

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

plot (Simulink)График выходные данные симуляции в Данные моделирования Inspector

Примеры

свернуть все

  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 (Simulink) объект логгирования сигналов. Имя по умолчанию объекта логгирования сигналов logsout. Для получения дополнительной информации смотрите Экспорт данных сигнала с использованием регистрации сигналов (Simulink).

  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 (Simulink) метод.

    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