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 загружает модель перед выполнением анализа.

The команды 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