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