Протестируйте две симуляции на эквивалентность

Проверьте эквивалентность модели в режиме normal и SIL симуляции.

В этом примере показано, как проверить эквивалентность между двумя моделями с помощью тестовых обвязок и менеджера тестирования. Одна модель запусков в режиме normal mode, а тестовая обвязка модель, созданная из подсистемы, работает в режиме software-in-the- цикла (SIL).

Контрольный пример эквивалентности в менеджере тестов сравнивает выход сигнала между двумя симуляциями, чтобы определить эквивалентность. Сигналы от основной модели и тестовой обвязки настроены для логгирования в этом примере. Регистрируемые сигналы используются в качестве критериев эквивалентности между нормальным и режимом SIL.

Сконфигурируйте модель

Откройте sltestNormalSILEquivalenceExample модель.

mdl = 'sltestNormalSILEquivalenceExample';
harnessOwner = 'sltestNormalSILEquivalenceExample/Controller';
open_system(mdl);

Включите регистрацию сигнала в модели.

set_param(mdl,'SignalLogging','on','SignalLoggingName', 'SIL_signals');

Отметьте выходные и входные сигналы подсистемы контроллера для логгирования.

ph_controller_in = get_param('sltestNormalSILEquivalenceExample/Controller/In1','PortHandles');
ph_controller_out = get_param('sltestNormalSILEquivalenceExample/Controller','PortHandles');

set_param(ph_controller_in.Outport(1),'DataLogging','on');
set_param(ph_controller_out.Outport(1),'DataLogging','on');
clear ph_controller_in ph_controller_out;

Симулируйте модель и выводите записанные сигналы. Данные о сигнале используются как вход для тестовой обвязки.

out = sim(mdl);

Получите данные записанного сигнала.

out_data = out.get('SIL_signals');
control_in1 = out_data.get(2);

Создайте Тестовую обвязку для Верификации SIL.

Команда для создания обвязки сгенерирует код. Переключитесь в директорию с разрешениями на запись.

origDir = pwd;
dirName = tempname;
mkdir(dirName);
cd(dirName);
cleanup = onCleanup(@()cd(origDir));
sltest.harness.create(harnessOwner,'Name','SIL_Harness','VerificationMode','SIL');
### Starting build procedure for: Controller
### Successful completion of build procedure for: Controller
### Creating SIL block ...
Building with 'gcc'.
MEX completed successfully.

Build Summary

Top model targets built:

Model       Action                       Rebuild Reason                                    
===========================================================================================
Controller  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 25.805s

Откройте тестовую обвязку.

sltest.harness.open(harnessOwner,'SIL_Harness');

Настройка регистрации в тестовой обвязке

Включите регистрацию сигнала в тестовую обвязку.

set_param('SIL_Harness','SignalLogging','on','SignalLoggingName', 'SIL_signals');

Отметьте выходной порт тестовой обвязки для регистрации сигнала, который будет использоваться в тест эквивалентности.

ph_harness_out = get_param('SIL_Harness/Controller','PortHandles');
set_param(ph_harness_out.Outport(1),'DataLogging','on');
clear ph_harness_out;

Присвойте входные данные из симуляции тестовой обвязке.

set_param('SIL_Harness','LoadExternalInput','on',...
    'ExternalInput','control_in1.Values');

Создайте контрольный пример эквивалентности в Диспетчере тестов

Откройте менеджер тестов, выбрав Анализ > Менеджер тестов или команду

sltestmgr

Создайте тест эквивалентности.

  1. На панели инструментов менеджера тестов щелкните стрелу New и выберите Тестовый Файл > Blank Test File.

  2. Укажите тестовый файл следующим testHarnessEquivalence.mldatx. Менеджер тестирования создает тестовый файл с новым тестовым набором и базовым тестом по умолчанию.

  3. На панели «Браузер тестов» выберите тест базовой линии New Test Case 1, и нажмите «Удалить».

  4. Выберите New Test Suite 1.

  5. На панели инструментов нажмите кнопку New стрелы и выберите Equivalence Test.

  6. На панели Test Browser щелкните правой кнопкой мыши новый тест эквивалентности и выберите Rename. Назовите новый тест эквивалентности SIL Equivalence Test.

Присвойте тестовую обвязку тесту эквивалентности Simulation 1.

  1. Разверните симуляции 1 и System In Test.

  2. Нажмите кнопку Использовать текущую модель, чтобы назначить sltestNormalSILEquivalenceExample в модель.

  3. Разверните раздел «Тестовая обвязка».

  4. Нажмите кнопку «Обновить», чтобы получить актуальный список доступных тестовых обвязок.

  5. Выберите SIL_Harness из меню « Обвязки» для использования в качестве тестируемой системы.

Назначьте sltestNormalSILEquivalenceExample модель как Simulation 2.

  1. Свернуть симуляцию 1.

  2. Разверните симуляцию 2 и тестируемую систему.

  3. Нажмите кнопку Использовать текущую модель, чтобы назначить sltestNormalSILEquivalenceExample в модель.

  4. Свернуть симуляцию 2.

Соберите критерии эквивалентности. В разделе «Критерии эквивалентности» нажмите Capture, чтобы запустить тестовую обвязку в Симуляции 1 и идентифицировать сигнал эквивалентности.

Запуск Теста и просмотр результатов

Выберите SIL Equivalence Test на панели «Test Browser» и нажатии кнопки Запуска на панели инструментов. Менеджер тестов переключается на панель Результаты и Программные продукты и запускает контрольный пример эквивалентности. Тест проходит, потому что сравнение сигналов между моделью и тестовой обвязкой совпадает. Разверните набор результатов и выберите Controller:1 кнопка опции для построения графика сравнения сигналов.

close_system(mdl, 0);
clear mdl harnessOwner cleanup control_in1 origDir out out_data;

См. также

Похожие темы