sldiagnostics

Отобразите диагностическую информацию о системе Simulink

Синтаксис

sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys', options)
[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')
[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')

Описание

sldiagnostics('sys') отображает следующую диагностическую информацию, сопоставленную с моделью или подсистемой, заданной sys:

  • Количество каждого типа блока

  • Количество каждого типа объекта Stateflow®

  • Количество состояний, выходных параметров, входных параметров и шагов расчета корневой модели.

  • Имена библиотек сослались и экземпляры блоков, на которые ссылаются,

  • Время и дополнительная память используются для каждой фазы компиляции корневой модели

Если модель, заданная sys, не загружается, то sldiagnostics загружает модель прежде, чем выполнить анализ.

Команда sldiagnostics('sys', options) отображает только диагностическую информацию, сопоставленную с определенными операциями, перечисленными как векторы символов options. Приведенная ниже таблица обобщает доступные опции и их соответствующий допустимый ввод и вывод.

С sldiagnostics можно ввести имя модели или пути к подсистеме. Для некоторых аналитических опций sldiagnostics может анализировать только корневую модель. Если вы обеспечиваете несовместимый вход для одного из этих исследований, то sldiagnostics выдает предупреждение. Наконец, если вы вводите Библиотеку Simulink®, затем sldiagnostics не может выполнить опции, которые требуют образцовой компиляции (Update Diagram). Вместо этого sldiagnostics выдает предупреждение.

Во время анализа sldiagnostics перейдет по ссылкам библиотеки, но не будет следовать или анализировать Модели - ссылки. Смотрите find_mdlrefs для получения дополнительной информации о нахождении всех блоков Model и моделей, на которые ссылаются, в заданной модели.

Опция

Допустимые входные параметры

Вывод

CountBlocks

базируйтесь модель, библиотека или подсистема

Списки все уникальные блоки в системе и количестве случаев каждого. Это включает блоки, которые вкладываются в подсистемах маскированных или скрытых блоках.

CountSF

базируйтесь модель, библиотека или подсистема

Списки весь уникальный Stateflow возражают в системе и количестве случаев каждого.

Sizes

корневая модель

Перечисляет количество состояний, выходных параметров, входных параметров, и шагов расчета, а также флага, указывающего на прямое сквозное соединение, используемое в корневой модели.

Libs

базируйтесь модель, библиотека или подсистема

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

CompileStats

корневая модель

Перечисляет время и дополнительную память, используемую для каждой фазы компиляции корневой модели. Эта информация помогает пользователям диагностировать скорость компиляции модели и проблемы памяти.

RTWBuildStats

корневая модель

Перечисляет ту же информацию как диагностику CompileStats. Когда выпущено со вторым выходным аргументом sRpt, это получает ту же статистику, включенную в CompileStats и также статистику сборки Simulink Coder™.

Необходимо явным образом задать эту опцию, потому что это не часть анализа по умолчанию.

All

не применяется

Выполняет всю диагностику.

Примечание

Выполнение диагностики CompileStats прежде, чем моделировать модель впервые покажет большее использование памяти. Однако последующие выполнения диагностики CompileStats на модели потребуют меньшего количества использования памяти.

[txtRpt, sRpt] = sldiagnostics('sys') возвращает диагностическую информацию как текстовый отчет txtRpt и массив структур sRpt, который содержит следующие поля, которые соответствуют диагностическим опциям:

  • blocks

  • stateflow

  • sizes

  • links

  • compilestats

[txtRpt, sRpt] = sldiagnostics('sys', options) возвращает только заданные опции. Если ваши выбранные опции задают всего один тип анализа, то sRpt содержит результаты только того анализа.

[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats') возвращает информацию вовремя и использование памяти в txtRpt и sRpt.

[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats') включает статистику сборки Simulink Coder в дополнение к информации, сообщенной для CompileStats в sRpt вывод.

  • txtRpt содержит отформатированный текстовый вывод времени, проведенного в каждой из фаз в Simulink и Simulink Coder (если вы задали RTWBuildStats), например:

    Compile Statistics For: rtwdemo_counter
    	Cstat1: 0.00 seconds Model compilation pre-start
    	Cstat2: 0.00 seconds Stateflow compile pre-start notification
    	Cstat3: 0.10 seconds Post pre-comp-start engine event
    	Cstat4: 10.00 seconds Stateflow compile start notification
    	Cstat5: 0.00 seconds Model compilation startup completed
    

  • sRpt является структурой MATLAB®, содержащей время и использование памяти для каждой из фаз, например:

    sRpt =
    Model:	'myModel1'
    Statistics:	[1x134 struct]
    
    Размер массива sRpt.Statistics указывает на количество компиляции и фаз разработки, выполняемых во время операции. Исследуйте поля Statistics:
    sRpt.Statistics(1) = 
    Description:	'Phase1'
    CPUTime:	7.2490
    WallClockTime	4.0092
    ProcessMemUsage:	26.2148
    ProcessMemUsagePeak:	28.6680
    ProcessVMSize:	15.9531
    
    CPUTime и WallClockTime показывают прошедшее время для фазы в секундах. ProcessMemUsage, ProcessMemUsagePeak и ProcessVMSize показывают потребление памяти во время выполнения фазы в Мбайте.

Исследуйте эти ключевые метрики, чтобы понять производительность:

  • WallClockTime — В реальном времени протекло в каждой фазе в секундах. Суммируйте WallClockTime в каждой фазе, чтобы занять общее время, чтобы выполнить операцию:

    ElapsedTime = sum([statRpt.Statistics(:).WallClockTime]);

  • ProcessMemUsage — Объем памяти используется в каждой фазе. Суммируйте ProcessMemUsage через все фазы, чтобы получить потребление памяти во время целой операции:

    TotalMemory = sum([statRpt.Statistics(:).ProcessMemUsage]);

  • ProcessMemUsagePeak — Максимальная сумма выделенной памяти в каждой фазе. Заставьте максимум этой метрики через все фазы находить пиковое выделение памяти во время операции:

    PeakMemory = max([statRpt.Statistics(:).ProcessMemUsagePeak]);

    Примечание

    Статистические данные памяти доступны только на платформе Microsoft® Windows®.

Примеры

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

sldiagnostics('sldemo_bounce', 'CountBlocks')

Следующие количества команды и списки и уникальные блоки и объекты Stateflow использовали в модели sf_boiler, которая идет с программным обеспечением Stateflow; текстовый возвращенный отчет получен как myReport.

myReport = sldiagnostics('sf_boiler', 'CountBlocks', 'CountSF')

Следующие команды открывают модель f14, которая идет с программным обеспечением Simulink и считает количество блоков используемым в подсистеме Controller.

sldiagnostics('f14/Controller', 'CountBlocks')

Следующая команда запускает Sizes и диагностику CompileStats на модели f14, получая результаты и как текстовый отчет и как массив структур.

[txtRpt, sRpt] = sldiagnostics('f14', 'Sizes', 'CompileStats')

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

|

Представленный в R2006a