Представление и доступ к регистрации сигнала данных

Можно просмотреть регистрируемые данные сигнала в процессе моделирования, с помощью Инспектора Данных моделирования, или для приостановленных или остановленных симуляций, с помощью других интерфейсов визуализации. Смотрите Решают, Как Визуализировать Данные моделирования.

В качестве альтернативы можно получить доступ к данным о регистрации сигнала программно, с помощью команд MATLAB®, как описано в этой теме.

Совет

Если вы не видите данные о регистрации для сигнала, что вы отметили в модели для логгирования сигнала, проверяйте настройку логгирования. Используйте Селектор Логгирования Сигнала, чтобы позволить регистрировать для сигнала, логгирование которого заменено. Для получения дополнительной информации, вид на море Сигнал Настройки и Переопределения Логгирования Сигнала Логгирование Настроек.

Объект логгирования сигнала

Simulink® сохраняет данные о логгировании сигнала в Simulink.SimulationData.Dataset объект, который является переменной рабочего пространства MATLAB. Именем по умолчанию переменной логгирования сигнала является logsout. Можно поменять имя переменной. Для получения дополнительной информации смотрите, Задают Имя для Данных о Регистрации Сигнала.

Можно задать, хотите ли вы, чтобы данные для отдельных сигналов в наборе данных использовали MATLAB timeseries или timetable элементы. Установите параметр конфигурации Dataset signal format (для получения дополнительной информации смотрите формат сигнала Набора данных).

Релизы ранее, чем R2016a также поддержали ModelDataLogs формат. Для получения дополнительной информации смотрите, Перемещают Скрипты Тот Устаревший ModelDataLogs API Использования.

Доступ к данным программно

Можно использовать Simulink.SimulationData.Dataset API, чтобы получить доступ к данным о регистрации сигнала программно. Получить доступ к Dataset объектные элементы, используйте индексацию с фигурными скобками. Например, можно получить доступ к первому элементу topOut сигнал, регистрирующий Dataset объект с помощью индекса 1. Этот пример основан на использовании настройки по умолчанию timeseries для элементов набора данных. Для получения дополнительной информации о timeseries и timetable данные о формате, смотрите формат сигнала Набора данных.

open_system(docpath(fullfile(docroot,'toolbox','simulink',...
'examples','ex_bus_logging')));
open_system(docpath(fullfile(docroot,'toolbox','simulink',...
'examples','ex_mdlref_counter_bus')));
sim('ex_bus_logging')
topOut
Simulink.SimulationData.Dataset 'topOut' with 4 elements

                         Name          BlockPath                                
                         ____________  ________________________________________ 
    1  [1x1 Signal]      COUNTERBUS    ex_bus_logging/COUNTERBUSCreator        
    2  [1x1 Signal]      OUTPUTBUS     ex_bus_logging/CounterA                 
    3  [1x1 Signal]      INCREMENTBUS  ex_bus_logging/IncrementBusCreator      
    4  [1x1 Signal]      inner_bus     ...erA|ex_mdlref_counter_bus/Bus Creator

  - Use braces { } to access, modify, or add elements using index.
element1 = topOut{1}
element1 = 

  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'COUNTERBUS'
    PropagatedName: ''
         BlockPath: [1x1 Simulink.SimulationData.BlockPath]
          PortType: 'outport'
         PortIndex: 1
            Values: [1x1 struct]


  Methods, Superclasses
element1.Values
ans = 

      data: [1x1 timeseries]
    limits: [1x1 struct]

Искать определенные элементы в Dataset объект, используйте find метод. Возвратить имена Dataset объектные элементы, используйте getNames метод.

Совет

Вызывать функцию на каждом задало MATLAB timeseries объект, можно использовать Simulink.SimulationData.forEachTimeseries функция. Например, можно использовать эту функцию, чтобы дать возможность передискретизировать каждый элемент структуры timeseries объекты, полученные путем логгирования сигнала шины.

Обработка пробелов и новых строк на регистрируемые имена

Имена сигнала в журналах данных могут иметь пробелы или новые строки на их имена когда:

  • Сигнал называют, и имя включает пробел или символ новой строки.

  • Сигнал без имени и происходит в блоке, имя которого включает пробел или символ новой строки.

  • Сигнал существует в подсистеме или модели, на которую ссылаются (или любой родительский блок), чье имя включает пробел или символ новой строки.

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

  • Пробел

  • Сигнал, имя которого содержит новую строку

  • Сигнал без имени, который происходит в блоке, имя которого содержит новую строку

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

logsout
Simulink.SimulationData.Dataset 'logsout' with 3 elements

                         Name  BlockPath            
                         ____  ____________________ 
    1  [1x1 Signal]      ''    untitled/Sine  Wave2
    2  [1x1 Signal]      x y   untitled/Sine Wave  
    3  [1x1 Signal]      x y   untitled/Sine Wave1 

  - Use braces { } to access, modify, or add elements using index.

Чтобы получить доступ к сигналу с пробелом или новой строкой, используйте индекс. Например, чтобы получить доступ к x y сигнал:

>> logsout.getElement{2}
ans = 

  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'x  y'
    PropagatedName: ''
         BlockPath: [1x1 Simulink.SimulationData.BlockPath]
          PortType: 'outport'
         PortIndex: 1
            Values: [1x1 timeseries]

Доступ к регистрируемым данным сигнала в ModelDataLogs Формат

Перед R2016a вы могли регистрировать сигналы в ModelDataLogs формат. Начиная в R2016a, вы не можете данные логов в ModelDataLogs формат. Логгирование сигнала использует Dataset формат.

Однако можно использовать данные, которые были зарегистрированы предыдущий релиз с помощью ModelDataLogs формат.

Для получения дополнительной информации смотрите Simulink.ModelDataLogs.

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

| | | | | | | |

Похожие темы