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

Этот пример демонстрирует, как использовать 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-имен-функций. Например, если исходный код 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-функции (дополнительный) Анализатор

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

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

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

sfunAnalyzer = Simulink.sfunction.Analyzer(model,'BuildInfo',{bdInfo},'Options',opts);
analysisResult=sfunAnalyzer.run();
sfunAnalyzer.generateReport();