Создайте функцию, чтобы проверять несколько систем

Можно использовать ModelAdvisor.run функционируйте, чтобы программно осуществить проверки одной или нескольких моделей или подсистем. В этом примере показано, как создать функцию, которая осуществляет проверки Model Advisor нескольких подсистем и затем возвращает количество отказов и предупреждений.

Этот пример также описывает, как можно изменить функцию, чтобы проверять многоуровневые модели или подсистемы параллельно. Если у вас есть лицензия Parallel Computing Toolbox™, можно запустить эту функцию в параллельном режиме, чтобы уменьшать время вычислений.

Скопируйте конфигурационный файл в качестве примера в свой текущий каталог

Скопируйте пользовательский конфигурационный файл Model Advisor demoConfiguration.json к writeable директории.

1. В MATLAB®, набор ваша текущая папка к writeable директории.

2. Скопируйте скрипт prepare_cust_chk_code.m к вашей текущей папке и запуску скрипт. Скрипт копирует файлы, необходимые для этого примера к вашей текущей папке.

copyfile(fullfile(matlabroot,'examples','slcheck','main','prepare_cust_chk_code.m'),...
    'prepare_cust_chk_code.m','f');

run('prepare_cust_chk_code.m');

Файл в качестве примера demoConfiguration.json. файл пользовательской конфигурации. Можно использовать файлы пользовательской конфигурации, чтобы задать который проверки включать в анализ Model Advisor. Для получения дополнительной информации о файлах пользовательской конфигурации, смотрите Использование Model Advisor Configuration Editor, чтобы Настроить Model Advisor.

Запишите функцию, чтобы осуществить проверки и возвратить результаты

1. В окне MATLAB выберите New> Function.

2. Сохраните файл как run_configuration.m.

3. В функции щелкните правой кнопкой по untitled и выберите имя функции Replace именем файла. Имя функции обновляется к run_configuration.

function [outputArg1,outputArg2] = run_configuration(inputArg1,inputArg2)
%UNTITLED Summary of this function goes here
%    Detailed explanation goes here
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end

4. Удалите тело функции.

function [outputArg1,outputArg2] = run_configuration(inputArg1,inputArg2)
end

5. Замените выходные аргументы с [fail, warn] и входной параметр с SysList.

function [fail,warn] = run_configuration(SysList)
end

6. В функции задайте конфигурационный файл Model Advisor.

fileName = 'demoConfiguration.json';

7. SysList вход является списком систем для Model Advisor, чтобы осуществить проверки. Вызовите ModelAdvisor.run функция на SysList.

SysResultObjArray = ModelAdvisor.run(SysList,'Configuration',fileName);

8. Определите количество проверок, которые возвращают отказы и предупреждения и выводят их к fail и warn выходные аргументы, соответственно:

fail = 0;
warn = 0;

for i=1:length(SysResultObjArray)
    fail = fail + SysResultObjArray{i}.numFail;
    warn = warn + SysResultObjArray{i}.numWarn;
end

run_configuration функция теперь содержит это содержимое:

function [fail, warn] = run_configuration(SysList)

%RUN_CONFIGURATION Check systems with Model Advisor
%   Check systems given as input and return number of failures and warnings.

fileName = 'demoConfiguration.json';

% Run the Model Advisor.
SysResultObjArray = ModelAdvisor.run(SysList,'Configuration', fileName);

fail = 0;
warn = 0;

for i=1:length(SysResultObjArray)
    fail = fail + SysResultObjArray{i}.numFail;
    warn = warn + SysResultObjArray{i}.numWarn;
end

end

Протестируйте функцию

1. Сохраните run_configuration функция.

2. Сохраните подсистемы, что вы хотите осуществить проверки Model Advisor переменной под названием systems.

systems = {'sldemo_auto_climatecontrol/Heater Control',...
    'sldemo_auto_climatecontrol/AC Control',...
    'sldemo_auto_climatecontrol/Interior Dynamics'};

3. Запустите run_configuration функция на systems.

[fail,warn] = run_configuration(systems);
         Running Model Advisor... 
Updating Model Advisor cache...
Model Advisor cache updated. For new customizations, to update the cache, use the Advisor.Manager.refresh_customizations method.... ... 

         Systems passed: 0 of 3

         Systems with warnings: 3 of 3

         Systems failed: 0 of 3
         To view the summary report, use the 'ModelAdvisor.summaryReport(SystemResultObjArray)' command. SystemResultObjArray is the result of the ModelAdvisor.run command.

4. Рассмотрите результаты при помощи Сводного отчета или disp функция:

  • Чтобы просмотреть отчеты Model Advisor для каждой системы, щелкните по ссылке Сводного отчета. Это открывает Сводный отчет Командной строки Model Advisor.

  • Просмотреть количество отказов и предупреждений, возвращенных run_configuration функция, посмотрите на fail и warn переменные.

disp(['Number of checks that return failures: ', num2str(fail)]);
Number of checks that return failures: 0
disp(['Number of checks that return warnings: ', num2str(warn)]);
Number of checks that return warnings: 4

Проверка нескольких систем параллельно

Проверка нескольких систем параллельно уменьшает время вычислений, требуемое Model Advisor. Если у вас есть лицензия Parallel Computing Toolbox™, можно проверять несколько систем параллельно на многожильной хост-машине.

Чтобы проверять несколько систем параллельно, вызовите ModelAdvisor.run функция с 'ParallelMode'установите на 'On'.

SysResultObjArray = ModelAdvisor.run(SysList,'Configuration',fileName,'ParallelMode','On');

Parallel Computing Toolbox не поддерживает 32-битные машины Windows®.

Каждый параллельный процесс осуществляет проверки одной модели за один раз. Когда Model Advisor запускается в параллельном режиме, он не делает данных о модели поддержки в базовом рабочем пространстве. Данные модели должны быть заданы в словаре данных или рабочем пространстве модели.

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте