Отображение диагностической информации о системе 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 Дополнительные сведения о поиске всех блоков модели и ссылочных моделей в указанной модели.
Выбор | Допустимые входные данные | Продукция |
|---|---|---|
| корневая модель, библиотека или подсистема | Список всех уникальных блоков в системе и количество вхождений каждого из них. Сюда входят блоки, вложенные в маскированные подсистемы или скрытые блоки. |
| корневая модель, библиотека или подсистема | Перечисляет все уникальные объекты Stateflow в системе и количество вхождений каждого из них. |
| корневая модель | Список состояний, выходов, входов и времени выборки, а также флаг, обозначающий прямой проход, используемый в корневой модели. |
| корневая модель, библиотека или подсистема | Список всех уникальных библиотек, на которые ссылается корневая модель, а также имена и номера блоков библиотеки. |
| корневая модель | Перечисляет время и дополнительную память, используемые для каждой фазы компиляции корневой модели. Эта информация помогает пользователям устранять проблемы со скоростью компиляции и памятью. |
| корневая модель | Отображает ту же информацию, что и Необходимо явно указать эту опцию, поскольку она не является частью анализа по умолчанию. |
| неприменимо | Выполняет всю диагностику. |
Примечание
Запуск 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')