exponenta event banner

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 невозможно выполнить параметры, требующие компиляции модели (обновить схему). Вместо этого sldiagnostics выдает предупреждение.

Во время анализа, sldiagnostics будут следовать по ссылкам библиотеки, но не будут следовать или анализировать Привязки модели (Model References). Посмотрите find_mdlrefs Дополнительные сведения о поиске всех блоков модели и ссылочных моделей в указанной модели.

Выбор

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

Продукция

CountBlocks

корневая модель, библиотека или подсистема

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

CountSF

корневая модель, библиотека или подсистема

Перечисляет все уникальные объекты Stateflow в системе и количество вхождений каждого из них.

Sizes

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

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

Libs

корневая модель, библиотека или подсистема

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

CompileStats

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

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

RTWBuildStats

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

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

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

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 массив указывает количество этапов компиляции и построения, выполненных во время операции. Проверьте поля Статистика:
    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