В этом примере показано, как исключить блоки из собственных проверок. Чтобы сэкономить время во время разработки моделей и верификации, можно исключить отдельные блоки из собственных проверок во время анализа Model Advisor. Чтобы исключить собственные проверки из блоков Simulink и диаграмм Stateflow, используйте ModelAdvisor.Check.supportExclusion
и Simulink.ModelAdvisor.filterResultWithExclusion
функции в файле определения проверки.
Обновите файл определения проверки
Установите свою папку на writeable директорию.
Скопируйте скрипт prepare_cust_chk_code
к вашей текущей папке и запуску скрипт. Скрипт копирует файлы, необходимые для этого примера к вашей текущей папке.
copyfile(fullfile(matlabroot,'examples','slcheck','main','prepare_cust_chk_code.m'),... 'prepare_cust_chk_code.m','f'); run('prepare_cust_chk_code.m');
Откройте defineDetailStyleCheck
файл.
Чтобы обновить проверку Check position of block names, чтобы исключить блоки во время анализа Model Advisor, сделайте две модификации к defineDetailStyleCheck
файл.
Позвольте проверке Check position of block names поддержать исключения проверки при помощи ModelAdvisor.Check.supportExclusion
свойство. После rec.setCallbackFcn(@DetailStyleCallback,'None','DetailStyle');
, добавьте rec.supportExclusion = true;
. Первый раздел function defineDetailStyleCheck
теперь похож:
% Create ModelAdvisor.Check object and set properties. rec = ModelAdvisor.Check('com.mathworks.sample.detailStyle'); rec.Title = 'Check whether block names appear below blocks'; rec.TitleTips = 'Check position of block names'; rec.setCallbackFcn(@DetailStyleCallback,'None','DetailStyle'); rec.supportExclusion = true;
Используйте Simulink.ModelAdvisor.filterResultWithExclusion
функционируйте, чтобы отфильтровать объекты модели, вызывающие предупреждение проверки или отказ с проверками, которым включили исключения. Для этого измените DetailStyleCallback(system, CheckObj)
функция можно следующим образом:
% Find all blocks whose name does not appear below blocks violationBlks = find_system(system, 'Type','block',... 'NamePlacement','alternate',... 'ShowName', 'on'); violationBlks = mdladvObj.filterResultWithExclusion(violationBlks);
Сохраните DefineDetailStyleCheck
файл. Если вас спрашивают, нормально ли перезаписывать файл, нажмите OK.
Создайте и сохраните исключения
Для ваших индивидуальных настроек, чтобы отобразиться в Model Advisor, необходимо обновить кэш информации о проверке Model Advisor. В командной строке MATLAB введите эту команду:
Advisor.Manager.refresh_customizations();
Чтобы открыть модель, дважды кликните AdvisorCustomizationExample.slx
.
Во вкладке Modeling выберите Model Advisor, чтобы открыть Model Advisor.
Если папка By Product не отображена в окне Model Advisor, выберите Show By Product Folder из диалогового окна Settings> Preferences.
На левой панели окна Model Advisor выберите By Product> Demo> проверка Check whether block names appear below blocks. На правой панели выберите Run This Check. Сбои проверки.
В окне Model Advisor проверяйте, что Highlighting Highlight Check Results выбран. Блоки, вызывающие отказ проверки Check whether block names appear below blocks, подсвечены в желтом.
В окне модели щелкните правой кнопкой по X
блокируйте и выберите Model Advisor > Exclude block only> Check position of block names.
В Редакторе Исключения Model Advisor нажмите OK, чтобы создать файл исключения.
В окне модели откройте Amplifier
подсистема и щелкает правой кнопкой по GainBlock
блокируйте и выберите Model Advisor > Exclude block only> Check position of block names.
В Редакторе Исключения Model Advisor нажмите OK, чтобы обновить файл исключения.
Рассмотрите исключения
В Model Advisor нажмите Settings> Preferences> Show Exclusion Tab. Рассмотрите исключения во вкладке Exclusions.
На левой панели окна Model Advisor выберите By Product> Demo> проверка Check position of block names. На правой панели выберите Run This Check. Проверка теперь передает. На правой панели окна Model Advisor вы видите Check Exclusion Rules, который Model Advisor применяет во время анализа.
Закройте модель и Model Advisor.
ModelAdvisor.Check.SupportExclusion
| Simulink.ModelAdvisor