Запуск проверок качества для S-функций

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

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

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

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

  • Опции - Класс, используемый для задания текущих опций S-функции Analyzer.

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

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

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

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

model = 'slexSfunctionCheckExample';

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

Анализатор S-функций проверяет исходный код 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-функции Analyzer (необязательно)

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

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

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

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