exponenta event banner

Выполнение проверок качества S-функций

В этом примере показано, как использовать API анализатора S-функций для проверки S-функций с целью выявления потенциальных проблем и улучшений.

API-интерфейсы командной строки анализатора S-Function MATLAB состоят из:

  • Simulink.sfunction.Analyzer - класс, используемый для запуска S-функционального анализатора и получения результатов анализа.

  • Simulink.sfunction.analyzer.BuildInfo - класс, используемый для создания объекта для указания информации построения для S-функции.

  • Simulink.sfunction.analyzer.Options - класс, используемый для задания параметров выполнения S-функции Analyzer.

  • Simulink.sfunction.analyzer.findSfunctions - статический метод возврата всех возможных S-функций в модели или библиотеке для S-функционального анализатора.

Для получения более подробной информации о вышеуказанных API см. справку.

Укажите входную модель или библиотеку (обязательно)

Анализатору S-Function требуется модель или библиотека в пути MATLAB в качестве входных данных, которая содержит S-функциональные блоки, подлежащие анализу.

model = 'slexSfunctionCheckExample';

Укажите информацию о построении для S-функций (необязательно)

Анализатор S-Function проверяет исходный код S-функций, когда они доступны. Эвристика применяется для автоматического поиска исходного кода на основе имен S-функций. Например, если исходный код S-функции и входная модель находятся в одной папке, исходный код будет автоматически включен в анализ. В противном случае информацию о построении необходимо указать с помощью Simulink.sfunction.analyzer.BuildInfo. Если исходный код недоступен, этот раздел можно пропустить.

Чтобы указать информацию построения, сначала определите подходящие S-функции во входной модели, а затем создайте объект Simulink.sfunction.analyzer.BuildInfo для каждой S-функции. Для S-функции slexBadSFcn существует два связанных исходных файла: slexBadSFcn.c и slexBadSFcn_wrapper.c

sfunctions= Simulink.sfunction.analyzer.findSfunctions(model);
bdInfo= Simulink.sfunction.analyzer.BuildInfo(fullfile(matlabroot,'examples','simulink_features','data','slexBadSFcn.c'),...
                                              'ExtraSrcFileList',{'slexBadSFcn_wrapper.c'},...
                                              'SrcPaths',{fullfile(matlabroot,'examples','simulink_features','data')});

Укажите параметры выполнения для S-function Analyzer (необязательно)

Опции выполнения анализатора S-функций можно настроить с помощью объекта Simulink.sfunction.analyzer.Options, например, включить ли проверки Polyspace и проверки надежности параметров, тайм-аут моделирования модели и выходной путь для отчета о результатах. Если конкретные параметры не требуются, этот раздел можно пропустить. Будут применены все параметры по умолчанию.

opts = Simulink.sfunction.analyzer.Options();
opts.EnableRobustness = 1;

Запустите S-функцию Analyzer и просмотрите результат (обязательно)

sfunAnalyzer = Simulink.sfunction.Analyzer(model,'BuildInfo',{bdInfo},'Options',opts);
analysisResult=sfunAnalyzer.run();
sfunAnalyzer.generateReport();
MATLAB is running in nodesktop mode. Make sure to start a JCEF browser(doc/liveeditor) to ensure this debug port is valid