Этот пример демонстрирует, как использовать S-функцию API анализатора, чтобы проверять S-функции, для того, чтобы идентифицировать потенциальные проблемы и улучшения.
S-функция API командной строки MATLAB анализатора состоит из:
Simulink.sfunction.Analyzer - Класс, используемый, чтобы запустить S-функцию анализатор и получить результаты анализа.
Simulink.sfunction.analyzer.BuildInfo - Класс, используемый, чтобы создать объект указать информацию сборки для S-функции.
Simulink.sfunction.analyzer.Options - Класс раньше задавал под управлением опции для S-функции Анализатор.
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 object для каждой S-функции. Для S-функции slexBadSFcn, существует два связанных исходных файла: slexBadSFcn.c и slexBadSFcn_wrapper.c
sfunctions= Simulink.sfunction.analyzer.findSfunctions(model); bdInfo= Simulink.sfunction.analyzer.BuildInfo(fullfile(matlabroot,'toolbox','simulink','simdemos','simfeatures','src','slexBadSFcn.c'),... 'ExtraSrcFileList',{'slexBadSFcn_wrapper.c'},... 'SrcPaths',{fullfile(matlabroot,'toolbox','simulink','simdemos','simfeatures','src')});
Опции выполнения для S-функции, анализатор может быть сконфигурирован через Simulink.sfunction.analyzer.Options object, такой как, разрешить ли проверки Polyspace и проверки Робастности Параметра, тайм-аут симуляции модели и выход path для отчета результата. Если никакие определенные опции не необходимы, этот раздел может быть пропущен. Все опции по умолчанию будут применены.
opts = Simulink.sfunction.analyzer.Options(); opts.EnableRobustness = 1;
sfunAnalyzer = Simulink.sfunction.Analyzer(model,'BuildInfo',{bdInfo},'Options',opts); analysisResult=sfunAnalyzer.run(); sfunAnalyzer.generateReport();