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