Этот пример показывает, как исключить блоки от собственных проверок. Чтобы сэкономить время во время разработки моделей и верификации, можно исключить отдельные блоки от собственных проверок в анализе Model Advisor. Чтобы исключить собственные проверки из блоков Simulink и диаграмм Stateflow, используйте ModelAdvisor.Check.supportExclusion
и функции Simulink.ModelAdvisor.filterResultWithExclusion
в файле sl_customization.m
.
Обновите файл sl_customization.m
Открыть модель в качестве примера, в командной строке, slvnvdemo_mdladv
типа.
В окне модели дважды кликните View demo sl_customization.m.
Чтобы исключить собственную проверку Check Simulink block font из блоков во время анализа Model Advisor, сделайте три модификации к файлу sl_customization.m
.
Позвольте проверке Check Simulink block font поддержать исключения проверки при помощи свойства ModelAdvisor.Check.supportExclusion
. Можно теперь исключить проверку из блоков модели. После rec.setInputParametersLayoutGrid([3 2]);
добавьте rec.supportExclusion = true;
. Раздел check 1
function defineModelAdvisorChecks
теперь похож:
% --- sample check 1 rec = ModelAdvisor.Check('com.mathworks.sample.Check1'); rec.Title = 'Check Simulink block font'; rec.TitleTips = 'Example style three callback'; rec.setCallbackFcn(@SampleStyleThreeCallback,'None','StyleThree'); rec.setInputParametersLayoutGrid([3 2]); rec.supportExclusion = true;
Используйте функцию Simulink.ModelAdvisor.filterResultWithExclusion
, чтобы отфильтровать объекты модели, вызывающие предупреждение проверки или отказ с проверками, которым включили исключения. Для этого существует два места в файле sl_customization.m
, чтобы изменить, оба в функции [ResultDescription, ResultDetails] = SampleStyleThreeCallback(system)
:
После обоих экземпляров
searchResult = setdiff(allBlks, regularBlks);
добавление
searchResult = mdladvObj.filterResultWithExclusion(searchResult);
В первом месте функция теперь похожа:
% find regular font name blocks regularBlks = find_system(allBlks,'FontName',regularFontName); % look for different font blocks in the system searchResult = setdiff(allBlks, regularBlks); searchResult = mdladvObj.filterResultWithExclusion(searchResult); if ~isempty(searchResult)
Во втором месте функция теперь похожа:
% find regular font size blocks regularBlks = find_system(allBlks,'FontSize',regularFontSize); % look for different font size blocks in the system searchResult = setdiff(allBlks, regularBlks); searchResult = mdladvObj.filterResultWithExclusion(searchResult); if ~isempty(searchResult)
Сохраните файл sl_customization.m
. Если вас спрашивают, нормально ли перезаписывать файл, нажмите OK.
Создайте и сохраните исключения
В окне модели дважды кликните Launch Model Advisor.
Если папка By Product не отображена в окне Model Advisor, выберите Show By Product Folder из диалогового окна Settings> Preferences.
На левой панели окна Model Advisor выберите проверку By Product > Demo > Check Simulink block font. На правой панели выберите Run This Check. Сбои проверки.
В окне Model Advisor нажмите кнопку Enable highlighting (). Блоки, вызывающие отказ проверки Check Simulink block font, подсвечены в желтом.
В окне модели щелкните правой кнопкой по этим X блокам и выберите Model Advisor > Exclude block only> Check Simulink block font.
В Редакторе Исключения Model Advisor нажмите OK, чтобы создать файл исключения.
В окне модели щелкните правой кнопкой по блоку Input и выберите Model Advisor > Exclude block only> Check Simulink block font.
Рассмотрите исключения
В Редакторе Исключения Model Advisor нажмите OK, чтобы обновить файл исключения.
На левой панели окна Model Advisor выберите проверку By Product > Demo > Check Simulink block font. На правой панели выберите Run This Check. Проверка теперь передает. На правой панели окна Model Advisor вы видите Check Exclusion Rules что Model Advisor во время анализа.
Закройте slvnvdemo_mdladv
.
ModelAdvisor.Check.SupportExclusion
| Simulink.ModelAdvisor