Когда вы разрабатываете модель, можно хотеть заменить настройки журналирования сигнала для определенного запущенного моделирования. Можно заменить свойства журналирования сигнала, не изменяя модель в Редакторе Simulink®.
Чтобы уменьшить память наверху и упростить анализ результатов журналирования моделирования, замените свойства журналирования сигнала. Путем переопределения настроек журналирования сигнала можно постараться не перекомпилировать модель.
Переопределение журналирования сигнала свойств полезно когда это необходимо для:
Фокусируйтесь только на нескольких сигналах путем отключения регистрирующий для большинства сигналов, отмеченных для журналирования. Можно отметить надмножество сигналов для журналирования, и затем выбрать различные подмножества их для журналирования.
Исключите несколько сигналов из журналирования сигнала вывод.
Замените определенные свойства журналирования сигнала, такие как десятикратное уменьшение, для сигнала.
Соберите только, в чем вы нуждаетесь при выполнении нескольких тестовых векторов.
Используйте любой из двух интерфейсов, чтобы заменить настройки журналирования сигнала:
Можно использовать комбинацию двух интерфейсов. Селектор Журналирования Сигнала создает объекты Simulink.SimulationData.ModelLoggingInfo
при сохранении настроек переопределения. Интерфейс командной строки имеет свойства, имена которых соответствуют Сигналу, Регистрирующему Селекторный интерфейс. Например, класс Simulink.SimulationData.ModelLoggingInfo
имеет свойство LoggingMode
, которое соответствует параметру Режима Журналирования в Селекторе Журналирования Сигнала.
Когда вы заменяете настройки журналирования сигнала, Симулинк использует те настройки переопределения, когда вы моделируете модель.
Simulink сохраняет в модели сигнал, регистрирующий настройку переопределения, которую вы задаете. Однако Simulink не изменяет настройки журналирования сигнала в диалоговом окне Signal Properties для каждого сигнала в модели.
В Селекторе Журналирования Сигнала, если вы заменяете некоторые настройки журналирования сигнала, и затем устанавливаете Режим Журналирования на Log all signals as specified in model
, настройки журналирования, заданные в модели, появляются в Селекторе Журналирования Сигнала. Настройки переопределения отображаются серым, указывая, что вы не можете заменить эти настройки. Чтобы повторно активировать настройки переопределения, установите Режим Журналирования на Override signals
. Используя Селектор Журналирования Сигнала, чтобы заменить журналирование для определенного сигнала не влияет на индикатор журналирования сигнала для того сигнала.
Если вы закрываете и затем вновь открыли модель, переопределения установки журналирования, которые вы сделали, в действительности, если журналирование режима собирается заменить сигналы для той модели. Когда модель отображает индикаторы журналирования сигнала, она отображает индикаторы для всех регистрируемых сигналов, включая регистрируемые сигналы, что вы заменили.
Simulink восстанавливает модель в следующей ситуации:
Модель содержит один или несколько сигналов, отмеченных для журналирования сигнала.
Вы моделируете модель в быстром режиме Accelerator.
Вы используете Селектор Журналирования Сигнала или командную строку MATLAB®, чтобы изменить настройку журналирования сигнала.
Вы моделируете модель в быстром режиме Accelerator снова.
Откройте Селектор Журналирования Сигнала, с помощью одного из следующих подходов:
В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
Чтобы включить кнопку Configure Signals to Log, выберите Сигнал, регистрирующий параметр конфигурации.
Для модели, которая включает Блок модели, можно также использовать следующий подход:
В Редакторе Simulink щелкните правой кнопкой по Блоку модели.
В контекстном меню выберите Log Referenced Signals.
Установите режим журналирования на Override signals
.
Установка Override signals
влияет на все уровни иерархии модели. Эта установка может привести к выключению журналирования для любого сигнала всюду по иерархии, на основе существующих настроек. Чтобы рассмотреть настройки, выберите соответствующий узел в панели Иерархии модели.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
Замените настройки журналирования сигнала. Используйте один из следующих подходов, в зависимости от того, использует ли ваша модель образцовую ссылку:
Чтобы открыть Параметры конфигурации> панель Импорта/Экспорта Данных от Селектора Журналирования Сигнала, используйте кнопку.
Если ваша модель не использует ссылку модели (то есть, модель не включает Блоков модели), настройки журналирования сигнала переопределения с помощью следующей процедуры.
Откройте Селектор Журналирования Сигнала. В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
При необходимости выберите журналирование Signal, чтобы включить кнопку Configure Signals to Log.
Установите режим журналирования на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
В таблице панели Содержимого выберите сигнал, журналирование которого настроек вы хотите заменить.
Настройки журналирования переопределения:
Чтобы отключить журналирование для сигнала, снимите флажок DataLogging
для того сигнала.
Заменять другие настройки журналирования сигнала (например, десятикратное уменьшение), гарантируют, что флажок DataLogging
устанавливается. Затем значения редактирования в соответствующих столбцах.
Если ваша образцовая ссылка модели использования (то есть, модель включает по крайней мере один Блок модели), сигнал переопределения журналирование настроек с помощью одного или нескольких из этих процедур:
Позвольте Регистрировать для Всех Регистрируемых Сигналов. По умолчанию Simulink регистрирует все регистрируемые сигналы в модели, включая регистрируемые сигналы всюду по иерархиям модели - ссылки.
Если журналирование отключено для каких-либо регистрируемых сигналов в модели верхнего уровня или в Блоке модели верхнего уровня в иерархии модели - ссылки, то в панели Иерархии модели, флажок слева от того узла:
Тело (), если журналирование отключено для некоторых сигналов.
Пустой (), если журналирование отключено для всех сигналов.
Позволять регистрировать всех регистрируемых сигналов для узла:
Откройте Селектор Журналирования Сигнала. В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
Установите режим журналирования на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
В панели Иерархии модели установите флажок слева от узла, так, чтобы флажок имел галочку ().
Для модели верхнего уровня журналирование включено для всех регистрируемых сигналов в модели верхнего уровня, но не для регистрируемых сигналов в иерархиях модели - ссылки.
Для Блока модели наверху иерархии ссылки модели журналирование включено для целой иерархии модели - ссылки для выбранной модели, на которую ссылаются.
Отключите Журналирование для Всех Сигналов в Узле. Если журналирование сигнала включено для каких-либо сигналов в образцовом узле, то в панели Иерархии модели, флажок слева от узла:
Тело (), если журналирование включено для некоторых сигналов.
Проверенный (), если журналирование включено для всех сигналов.
Отключить журналирование для всех регистрируемых сигналов в узле модели:
Откройте Селектор Журналирования Сигнала. В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
Установите режим журналирования на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
В панели Иерархии модели снимите флажок слева от узла, так, чтобы флажок был пуст ().
Для модели верхнего уровня журналирование отключено для всех регистрируемых сигналов в модели верхнего уровня, но не для регистрируемых сигналов в иерархиях модели - ссылки.
Для Блока модели наверху иерархии ссылки модели журналирование отключено для целой иерархии модели - ссылки для модели выбранной ссылки.
Замените Журналирование Сигнала для Подмножества Сигналов. Регистрировать некоторых, но не все, регистрируемые сигналы в образцовом узле:
Откройте Селектор Журналирования Сигнала. В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
Установите режим журналирования на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
В панели Иерархии модели гарантируйте, что флажок для блока модели верхнего уровня или Блока модели любой тверд (), если журналирование отключено для некоторых сигналов или пустое (), если журналирование отключено для всех сигналов. Кликните по флажку, чтобы циклически повториться через различные состояния.
В таблице панели Содержимого, для сигналов, что вы хотите регистрировать, установите флажок в столбце DataLogging
.
Чтобы позволить регистрировать для нескольких сигналов, содержите Сдвиг или клавишу CTRL и выберите область значений сигналов или отдельных сигналов. Установите флажок в столбце DataLogging
одного из подсвеченных сигналов.
Замените Другую Signal Logging Properties. В дополнение к переопределению установки для свойства DataLogging
для сигнала можно заменить другие свойства журналирования сигнала, такие как десятикратное уменьшение.
Откройте Селектор Журналирования Сигнала. В Параметрах конфигурации> панель Импорта/Экспорта Данных, нажмите кнопку Configure Signals to Log.
Установите режим журналирования на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Смотрите, что Представление Регистрирует Настройку с Селектором Журналирования Сигнала.
В панели Иерархии модели гарантируйте, что флажок для блока модели верхнего уровня или Блока модели тверд (), если журналирование отключено для некоторых сигналов или пустое (), если журналирование отключено для всех сигналов. Кликните по флажку, чтобы циклически повториться через различные состояния.
В таблице панели Содержимого, для сигналов, для которых вы хотите заменить свойства журналирования, позволить регистрировать путем установки флажка в столбце DataLogging
.
Чтобы позволить регистрировать для нескольких сигналов, содержите Сдвиг или клавишу CTRL и выберите область значений сигналов или отдельных сигналов. Установите флажок в столбце DataLogging
одного из подсвеченных сигналов.
В таблице панели Содержимого измените настройки для свойств, таких как DecimateData
и Decimation
.
Интерфейс командной строки MATLAB для переопределения журналирования сигнала настроек включает:
Параметр модели DataLoggingOverride
— Использование, чтобы просмотреть или установить сигнал, регистрирующий значения переопределения для модели
Следующие классы:
— Задайте сигнал, регистрирующий настройки переопределения для модели. Этот класс соответствует полному Сигналу, Регистрирующему Селекторный интерфейс.Simulink.SimulationData.ModelLoggingInfo
Настройки
— Override для определенного сигнала. Этот класс соответствует строке в таблице свойства журналирования в Селекторе Журналирования Сигнала:Simulink.SimulationData.SignalLoggingInfo
— Переопределения для настроек журналирования сигнала, таких как десятикратное уменьшение. Этот класс соответствует доступным для редактирования столбцам подряд в таблице свойства журналирования в Селекторе Журналирования Сигнала.Simulink.SimulationData.LoggingInfo
Чтобы запросить модель для ее сигнала, регистрирующего состояние переопределения, используйте параметр DataLoggingOverride
.
Чтобы сконфигурировать журналирование сигнала из командной строки, используйте методы и свойства этих трех упомянутых выше классов. Чтобы применить настройку, используйте set_param
с параметром модели DataLoggingOverride
.
Следующие разделы описывают, как использовать интерфейс командной строки, чтобы выполнить некоторый общий сигнал, регистрирующий задачи настройки.
Чтобы использовать интерфейс командной строки для переопределения журналирования сигнала настроек, сначала создайте объект Simulink.SimulationData.ModelLoggingInfo
. Например, используйте следующие команды, чтобы создать модель, регистрирующую объект переопределения для модели ex_bus_logging
и автоматически добавить каждый регистрируемый сигнал в модели к тому объекту:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'ex_bus_logging')
mi = ModelLoggingInfo with properties: Model: 'ex_bus_logging' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x4 Simulink.SimulationData.SignalLoggingInfo]
LoggingMode
свойство установлено в OverrideSignals
, который конфигурирует модель, регистрирующую объект переопределения регистрировать только сигналы, заданные в свойстве Signals
.
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(ex_bus_logging, 'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
Можно управлять видами систем, от которых можно включать регистрируемые сигналы. По умолчанию объект Simulink.SimulationData.ModelLoggingInfo
включает регистрируемые сигналы от:
Библиотеки
Подсистемы маскированные
Модели, на которые ссылаются,
Активные варианты
Как альтернатива, можно использовать конструктора Simulink.SimulationData.ModelLoggingInfo
и задать объект Simulink.SimulationData.SignalLoggingInfo
для каждого сигнала. Чтобы гарантировать, что вы задали допустимые настройки журналирования сигнала для модели, используйте метод verifySignalAndModelPaths
с объектом Simulink.SimulationData.ModelLoggingInfo
для модели.
Чтобы задать, использовать ли настройки журналирования сигнала, как задано в модели и всех моделях, на которые ссылаются, или заменять те настройки, используют свойство LoggingMode
объекта Simulink.SimulationData.ModelLoggingInfo
.
Можно управлять, используют ли модель верхнего уровня и настройки журналирования сигнала переопределения использования моделей, на которые ссылаются, или настройки журналирования сигнала, заданные моделью. См. документацию
.Simulink.SimulationData.ModelLoggingInfo
Этот пример показывает, как регистрировать все сигналы, как задано в топ-модели и все модели, на которые ссылаются. Журналирование сигнала вывод сохранено в topOut
.
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo... ('ex_bus_logging'); mi.LoggingMode = 'LogAllAsSpecifiedInModel'
mi = ModelLoggingInfo with properties: Model: 'ex_bus_logging' LoggingMode: 'LogAllAsSpecifiedInModel' LogAsSpecifiedByModels: {} Signals: []
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(ex_bus_logging, 'DataLoggingOverride', mi);
Следующий пример показывает, как регистрировать только сигналы в топ-модели:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo... ('ex_bus_logging'); mi.LoggingMode = 'OverrideSignals'; mi = mi.setLogAsSpecifiedInModel('ex_bus_logging',true);
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
Для простой модели с ограниченным количеством регистрируемых сигналов вы могли создать пустой объект Simulink.SimulationData.ModelDataLogInfo
. Затем создайте Simulink.SimulationData.SignalLoggingInf
o объекты для каждого из сигналов, что вы хотите регистрировать и присвоить те объекты модели, регистрирующей информационный объект.
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mdl = 'ex_bus_logging'; blk = 'ex_bus_logging/IncrementBusCreator'; blkPort = 1; load_system(mdl); ov = Simulink.SimulationData.ModelLoggingInfo(mdl); so = Simulink.SimulationData.SignalLoggingInfo(blk,blkPort); ov.Signals(1) = so; % apply this object so the model set_param(mdl,'DataLoggingOverride',ov); % Simulate sim(mdl); % observe that only the signal topOut
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(mdl, 'DataLoggingOverride', ov);
Simulink сохраняет настройки, когда вы сохраняете модель.
Для модели, которая использует образцовую ссылку, или это является комплексным, чтобы задать подмножество регистрируемых сигналов регистрировать, рассмотреть использование метода findSignal
с объектом Simulink.SimulationData.ModelLoggingInfo
. Например, чтобы регистрировать только один сигнал от образцового экземпляра, на который ссылаются, на который, ссылаются:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'ex_bus_logging'); pos = mi.findSignal({'ex_bus_logging/CounterA' ... 'ex_mdlref_counter_bus/Bus Creator'}, 1)
pos = 4
for idx=1:length(mi.Signals) mi.Signals(idx).LoggingInfo.DataLogging = (idx == pos); end
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
В дополнение к переопределению установки для свойства DataLogging
для сигнала можно заменить другие свойства журналирования сигнала, такие как десятикратное уменьшение.
Используйте свойства
заменить свойства журналирования сигнала. Следующий пример показывает, как установить настройки переопределения десятикратного уменьшения.Simulink.SimulationData.LoggingInfo
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel... ('ex_bus_logging'); pos = mi.findSignal({'ex_bus_logging/CounterA' ... 'ex_mdlref_counter_bus/Bus Creator'}, 1); mi.Signals(pos).LoggingInfo.DecimateData = true; mi.Signals(pos).LoggingInfo.Decimation = 2;
Чтобы применить образцовые параметры объекта переопределения, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.