Синхронизируйте изменения между тестовой обвязкой и моделью

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

  • Компонент под тестом

  • Параметры блоков

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

  • Опционально, параметры рабочего пространства модели

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

Установите синхронизацию для новой тестовой обвязки

При создании тестовой обвязки вы задаете, когда изменения в тестовой обвязке синхронизируются с основной моделью. Синхронизация может произойти автоматически или вручную. Если вы планируете испытать различные проекты компонента в тестовой обвязке, используйте ручную синхронизацию, чтобы не перезаписывать компонент в основной модели. В зависимости от типа компонента под тестом в вашей обвязке можно выбрать из нескольких опций синхронизации, которые являются комбинациями следующих действий:

  • На открытой обвязке — обновляется компонент в тестовой обвязке, когда обвязка открывается. Синхронизация на открытой обвязке полезна, если вы обновляете проект в основной модели.

  • На обвязке близко — обновляется компонент в основной модели, когда обвязка закрывается. Синхронизация на обвязке близко полезна, если вы делаете конструктивные изменения в тестовой обвязке. Постарайтесь не синхронизироваться на обвязке близко, если вы хотите предотвратить непреднамеренные изменения в компоненте в основной модели.

  • Во время нажатия — Синхронизация происходит вручную путем выбора Analysis> Test Harness> Push Component and Parameters to Main Model.

  • Во время восстанавливают — Синхронизация происходит вручную путем выбора Analysis> Test Harness> Rebuild Harness from Main Model.

Если вы используете командную строку, устанавливаете свойство SynchronizationMode с sltest.harness.create.

Примечание

Если вы создаете тестовую обвязку в режиме SIL или PIL для блока Model, блочный режим в тестовой обвязке изменяется на SIL или PIL, соответственно. Этот режим не обновляется к основной модели, когда вы закрываете тестовую обвязку.

Поддержите SIL или точность блока PIL

Если вы используете программное обеспечение в цикле (SIL) или процессоре в блоке (PIL) цикла в тестовой обвязке, рассматриваете установку тестовой обвязки восстановить каждый раз, когда это открывается. Регулярно восстановление тестовой обвязки гарантирует, что сгенерированный код, на который ссылается блок SIL/PIL, отражает основную модель.

Измените синхронизацию существующей тестовой обвязки

Изменить режим синхронизации тестовой обвязки:

  1. Закройте тестовую обвязку.

  2. В основной модели кликните по значку обвязки на блоке или холсте Simulink®.

  3. В предварительном просмотре миниатюры тестовой обвязки кликните по значку Harness operations и выберите Properties.

  4. Измените Synchronization Mode в диалоговом окне свойств.

Если вы используете командную строку, устанавливаете свойство SynchronizationMode с sltest.harness.set.

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

Чтобы синхронизировать конфигурацию модели и параметры рабочей области между тестовой обвязкой и основной моделью, выберите Update Configuration Parameters and Model Workspace data on rebuild в создании обвязки или используйте диалоговое окно свойств.

Проверяйте на несинхронизируемые различия компонента

Если ваша тестовая обвязка не синхронизирует изменения, можно проверять на несинхронизируемые различия компонента между тестовой обвязкой и основной моделью. Проверка несинхронизируемые различия может быть полезной если:

  • Вы делаете предварительные конструктивные изменения в тестовой обвязке и хотите проверять, что основной компонент модели не перезаписывается.

  • Вы сделали конструктивные изменения к основной модели и хотите проверять, какие тестовые обвязки должны быть восстановлены.

Из окна тестовой обвязки выберите Analysis > Test Harness > Check, чтобы проверять на различия. Если компонент отличается, можно продвинуть изменения от тестовой обвязки до основной модели или восстановить тестовую обвязку из основной модели. Также смотрите, что sltest.harness.check функционирует.

Рассмотрите эти условия при проверке на несинхронизируемые различия:

  • sltest.harness.check только включает блок-схему, параметры блоков и параметры маски в сравнении между тестовой обвязкой и основной моделью. Опции порта, скомпилированные атрибуты, скрытые параметры и параметры регистрации данных модели - ссылки не включены в сравнение.

  • Если компонент содержит Блок Configuration Решателя Simscape™, результат проверки всегда показывает, что компонент отличается между тестовой обвязкой и основной моделью. Блок Configuration Решателя затронут блоками Simscape вне компонента, и поэтому всегда отличается между тестовой обвязкой и основной моделью.

Восстановите тестовую обвязку

Восстановите тестовую обвязку, чтобы отразить последнее состояние основной модели. В тестовой обвязке выберите Analysis > Test Harness > Rebuild Harness from Main Model. В дополнение к обновлению компонента под тестом и параметрами блоков, эта операция восстанавливает подсистемы преобразования обвязки. Если тестовая обвязка не имеет подсистем преобразования, восстановление добавляет их.

Восстановление может отключить сигнальные линии. Например, если названия сигнала, измененные в основной модели, сигнальные линии в тестовой обвязке могут быть отключены. Если строки отключаются, повторно подключают сигнальные линии к компоненту под подсистемами преобразования или тестом.

Для получения дополнительной информации смотрите Create Test Harnesses and Select Properties и sltest.harness.rebuild.

Продвиньте изменения от тестовой обвязки до модели

После изменения вашей системы в тестовой обвязке можно продвинуть изменения в основной модели. В тестовой обвязке выберите Analysis > Test Harness > Push Component and Parameters to Main Model. Этот процесс перезаписывает компонент в основной модели.

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

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

Этот пример также включает программируемые шаги.

Откройте модель sltestCar. Модель включает алгоритм регулятора сдвига передачи и упрощенную трансмиссию и динамику аппарата.

open_system('sltestCar');

Обновите параметр маски в тестовой обвязке

1. Откройте тестовую обвязку. Щелкните значок на shift_logic строят диаграмму и выбирают тестовую обвязку ShiftLogic_InportHarness. Тестовая обвязка собирается синхронизироваться только, когда вы продвигаете к или восстанавливаете из основной модели.

sltest.harness.open('sltestCar/shift_logic','ShiftLogic_InportHarness');

2. Дважды кликните подсистему shift_logic. Для Задержки перед переключением передач (метка деления) введите 4. Нажать ОК.

shiftLogicMask = Simulink.Mask.get('ShiftLogic_InportHarness/shift_logic');
maskParamValue = shiftLogicMask.Parameters.Value;
shiftLogicMask.Parameters.Value = '4';   % Set the new parameter value

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

На командной строке запустите функцию sltest.harness.check.

[comparison,details] = sltest.harness.check('sltestCar/shift_logic',...
    'ShiftLogic_InportHarness');

Результаты показывают, что компонент под тестом отличается в тестовой обвязке из-за обновленного параметра маски.

comparison
comparison =

  logical

   0

details
details = 

  struct with fields:

     overall: 0
    contents: 1
      reason: 'The contents of harnessed component and the contents of the component in the main model are same, but they differ in terms of block or mask parameters.'

Обновите параметр к основной модели

1. В тестовой обвязке выберите Analysis> Test Harness> Push Component и Parameters to Main Model.

2. В основной модели дважды кликните shift_logic подсистему. Значение параметров обновляется.

sltest.harness.push('sltestCar/shift_logic','ShiftLogic_InportHarness')

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

На командной строке обновите основную модель и тестовую обвязку. Затем запустите функцию sltest.harness.check.

set_param('sltestCar','SimulationCommand','update');
set_param('ShiftLogic_InportHarness','SimulationCommand','update');
[comparison,details] = sltest.harness.check('sltestCar/shift_logic',...
    'ShiftLogic_InportHarness');

Результаты показывают, что компонент под тестом является тем же самым между тестовой обвязкой и основной моделью.

comparison
comparison =

  logical

   1

details
details = 

  struct with fields:

     overall: 1
    contents: 1
      reason: 'The checksum of the harnessed component and the component in the main model are same.'

close_system('sltestCar',0);

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

| |

Похожие темы

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