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).

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

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

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

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

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

Примеры

свернуть все

  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