В этом примере показано, как использовать 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-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-функций можно настроить с помощью объекта Simulink.sfunction.analyzer.Options, например, включить ли проверки Polyspace и проверки надежности параметров, тайм-аут моделирования модели и выходной путь для отчета о результатах. Если конкретные параметры не требуются, этот раздел можно пропустить. Будут применены все параметры по умолчанию.
opts = Simulink.sfunction.analyzer.Options(); opts.EnableRobustness = 1;
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