В этом примере показано, как исключить блоки из собственных проверок. Чтобы сэкономить время во время разработки и верификации модели, можно исключить отдельные блоки из собственных проверок во время анализа Model Advisor. Чтобы исключить собственные проверки из блоков Simulink и диаграмм Stateflow, используйте ModelAdvisor.Check.supportExclusion
и Simulink.ModelAdvisor.filterResultWithExclusion
функции в файле определения проверки.
Обновление файла Определение
Установите папку в директорию с возможностью записи.
Скопируйте скрипт 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 для перезаписи файла, нажмите 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 > check. На правой панели выберите 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 > check. На правой панели выберите Run This Check. Проверка сейчас проходит. На правой панели окна Model Advisor можно увидеть Check Exclusion Rules, которую Model Advisor применяет во время анализа.
Закройте модель и Model Advisor.
ModelAdvisor.Check.SupportExclusion
| Simulink.ModelAdvisor