Существует три способа выполнения SIL и PIL симуляций. Вы можете использовать:
Модель верхней части.
Моделируйте блоки.
Блоки SIL и PIL, которые вы создаете из подсистем.
Чтобы сконфигурировать и запустить симуляцию SIL или PIL верхней модели:
В Simulink® Редактор, откройте свою модель.
На вкладке Apps нажмите SIL/PIL Manager.
В Mode разделе выберите SIL/PIL Simulation Only.
В Prepare разделе установите System Under Test равным Top model
.
В SIL/PIL Mode поле выберите Software-in-the-Loop (SIL)
или Processor-in-the-Loop (PIL)
. Опция поддерживает только целевые файлы системы ERT, GRT или AUTOSAR. Смотрите Параметры конфигурации модели: Генерация кода и настройте генерацию кода AUTOSAR (AUTOSAR Blockset) для получения информации о строении.
Для мониторинга сигналов компонента и данных о состоянии и сравнения значений из модели и SIL или PIL симуляций:
Для каждого сигнала, который вы хотите записать:
В редакторе Simulink выберите сигнал.
На вкладке SIL/PIL нажмите Monitor Signals. В галерее выберите следующие опции:
Log Selected Signals
Make Selected Signals Testpoints
Signal Logging
Для регистрации данных о состоянии из галереи Monitor Signals выберите State Logging.
Если параметр конфигурации Language C++
, в редакторе Code Mappings установите Data Visibility для сигналов, состояний и внутренних категорий элементов модели данных равными public
.
Если вы конфигурируете SIL симуляцию, задайте опцию portable word sizes. Затем можно плавно переключаться между режимами SIL и PIL. В диалоговом окне Параметры конфигурации установите флажок Enable portable word sizes.
При необходимости сконфигурируйте:
В разделе Run в поле Stop Time задайте время симуляции.
Нажмите Run SIL/PIL.
В конце симуляции в разделе Results щелкните Data Inspector, чтобы просмотреть результаты симуляции.
Примечание
В Windows® операционная система, брандмауэр Windows потенциально может блокировать симуляцию SIL или PIL. Чтобы разрешить симуляцию, используйте диалоговое окно «Предупреждение безопасности Windows». Для примера в Windows 7 нажмите Allow access.
Вы не можете:
Закройте модель во время симуляции. Чтобы прервать симуляцию, в Командном окне, нажмите Ctrl+C.
Измените модель во время симуляции. Можно перемещать блоки и линии, пока это не изменит поведение модели.
Можно запустить SIL верхней модели или PIL симуляции с помощью команды sim
. Программное обеспечение поддерживает (model
)sim
опция команды SrcWorkspace
для значения 'base'
.
Для PIL симуляции, вы управляете способом компиляции и выполнения кода в целевом окружении с помощью строений подключения.
Чтобы сконфигурировать блок Model для SIL или PIL симуляции:
В Редактор откройте свою модель, например rtwdemo_sil_modelblock
.
Щелкните правой кнопкой мыши ваш Model блок, например Counter A
. В контекстном меню выберите Block Parameters (ModelReference), который открывает диалоговое окно Function Параметры Блоков.
Из выпадающего списка Simulation Mode выберите необходимый режим, например Software-in-the-loop (SIL)
.
Из выпадающего списка Code interface укажите код, который вы хотите протестировать, например Model reference
.
Нажмите OK. Программа отображает режим симуляции как метку блока.
Если вы выбираете Top model
программа отображает метку блока (SIL: Top)
.
Если вы конфигурируете SIL симуляцию, задайте опцию portable word sizes. Затем можно плавно переключаться между режимами SIL и PIL. В диалоговом окне Параметры конфигурации установите флажок Enable portable word sizes.
На вкладке Apps нажмите SIL/PIL Manager.
В Mode разделе выберите SIL/PIL Simulation Only.
В Prepare разделе установите System Under Test равным Model blocks in SIL/PIL mode
.
В Top Model Mode поле выберите Normal
или Accelerator
.
При необходимости сконфигурируйте:
Профилирование выполнения кода для вашего Model блока путем конфигурирования профилирования выполнения для верхней модели.
В Run разделе:
В поле Stop Time задайте время симуляции.
Если вы хотите избежать перестроения кода после первоначальной сборки, нажмите Fast Restart. См. «Предотвращение изменений кода в нескольких симуляциях».
Нажмите Run SIL/PIL.
В конце симуляции в разделе Results нажмите Data Inspector, чтобы просмотреть результаты симуляции.
Примечание
В операционной системе Windows брандмауэр Windows потенциально может заблокировать симуляцию SIL или PIL. Чтобы разрешить симуляцию, используйте диалоговое окно «Предупреждение безопасности Windows». Для примера в Windows 7 нажмите Allow access.
Для PIL симуляции, вы управляете способом компиляции и выполнения кода в целевом окружении с помощью строений подключения.
Можно использовать один из следующих рабочих процессов:
Simulink Test™ жгут с SIL/PIL Manager - Если у вас есть модель, которая содержит подсистемы, можно использовать Simulink Test и SIL/PIL Manager, чтобы выполнить модульные тесты на коде, сгенерированном из подсистем. Этот рабочий процесс проверяет сгенерированный код подсистемы как часть кода, сгенерированного из родительской модели. Для получения дополнительной информации о рабочем процессе смотрите Test Atomic Subsystem Generated Code.
Если этот процесс не поддерживает подсистему, используйте в качестве альтернативы процесс блока SIL или PIL.
Блок SIL или PIL - создайте блок SIL или PIL из подсистемы, а затем запустите блок в окружение или тестовую обвязку модели, которая поставляет тестовые векторы или вход стимула. Этот рабочий процесс генерирует и тестирует новый автономный код из подсистемы. Для получения дополнительной информации смотрите SIL или PIL Block Simulation.
Для PIL симуляции, вы управляете способом компиляции и выполнения кода в целевом окружении с помощью строений подключения.
Для выполнения модульных тестов кода, сгенерированного из атомарной подсистемы:
Откройте модель, которая содержит атомарную подсистему. Для примера в Командном окне введите:
rtwdemo_sil_block
В новой папке сохраните модель как plant_model
.
Измените параметры конфигурации, которые не поддерживаются для этого рабочего процесса. В Командном окне введите:
set_param('plant_model', ... 'CreateSILPILBlock','None', ... 'PreserveStaticInFcnDecls', 'Off'); % For this example, use these values for block parameters. set_param('plant_model/Controller', ... 'RTWSystemCode','Nonreusable function', ... 'RTWFileNameOpts', 'Auto');
Сгенерируйте код для модели, которая содержит атомарную подсистему. В Командном окне введите:
slbuild('plant_model')
Создайте тестовую обвязку для подсистемы. Щелкните правой кнопкой мыши по Controller
и выберите Test Harness > Create for 'Controller'.
Установите свойства обвязки:
Name – controller_subsystem_harness
Sources and Sinks: Inport
и Outport
Выберите Open harness after creation.
Нажмите OK.
Simulink Test создает тестовую обвязку для Controller
подсистема.
Задайте формат для сохранения данных. В Командном окне введите:
set_param('controller_subsystem_harness', ... 'SaveFormat','Dataset')
В окне Тестовая обвязка откройте SIL/PIL Manager. На вкладке Apps нажмите SIL/PIL Manager.
При необходимости сконфигурируйте покрытие кода.
Выполняйте обратную модель и SIL симуляции:
В Mode разделе выберите Automated Verification.
В Run Automated Verification разделе нажмите Run Verification.
Из Results галереи можно:
Используйте Данные моделирования Inspector для анализа результатов. Для примера сравните controller_model_output
сигналы от модели и SIL симуляции.
Экспортируйте тест эквивалентности.
Для получения дополнительной информации смотрите Анализ результатов и Экспорт тестов.
Чтобы создать блок SIL или PIL из подсистемы и использовать этот блок для тестирования кода, сгенерированного из подсистемы:
От Configuration Parameters> Code Generation> Verification> Advanced Parameters> Create block выпадающий список, выберите любого SIL
или PIL
.
При необходимости сконфигурируйте профилирование выполнения кода.
Нажмите OK.
В окне модели щелкните правой кнопкой мыши подсистему, которую вы хотите моделировать.
Выберите C/C++ Code > Build This Subsystem.
Щелкните Build, который запускает процесс сборки подсистемы, который создает блок SIL или PIL для сгенерированного кода подсистемы.
Добавьте сгенерированный блок к окружению или тестовой обвязке модели, которая поставляет тестовые векторы или вход стимула.
Запустите симуляции с окружением или тестовой обвязкой моделью.
Примечание
В операционной системе Windows брандмауэр Windows потенциально может заблокировать симуляцию SIL или PIL. Чтобы разрешить симуляцию, используйте диалоговое окно «Предупреждение безопасности Windows». Для примера в Windows 7 нажмите Allow access.
Вы не можете создать блок SIL или PIL, если вы делаете одно из следующего:
Отключите CreateSILPILBlock
свойство.
Выберите инструмент покрытия кода.
Create block отображается затемненным.
Выходные параметры SIL и PIL доступны для наблюдения и сравнения с другими выходами режима симуляции. Если вы хотите изучить внутренний сигнал, можно включить регистрацию внутреннего сигнала для верхней модели или Model блока SIL или PIL. С помощью логгирования сигналов можно:
Собирайте выходы логгирования сигналов во время симуляций, например logsout
.
Регистрируйте внутренние сигналы и выходы корневого уровня компонента SIL/PIL.
Управление настройками логгирования сигналов SIL/PIL с помощью Simulink Signal Logging Selector.
Используйте Данные моделирования Inspector для:
Наблюдайте потоковые сигналы во время нормального, SIL и PIL симуляции.
Сравните записанные сигналы от normal, SIL и PIL симуляций.
Включение регистрации сигналов в MATLAB® рабочая область и потоковая передача сигналов в Данные моделирования Inspector во время SIL или PIL симуляций:
Для каждого сигнала, который вы хотите контролировать:
В редакторе Simulink выберите сигнал.
На вкладке SIL/PIL нажмите Monitor Signals. В галерее выберите следующие опции:
Log Selected Signals
Make Selected Signals Testpoints
Signal Logging
Если параметр конфигурации Language C++
, в редакторе Code Mappings установите Data Visibility для сигналов, состояний и внутренних категорий элементов модели данных равными public
.
Можно использовать другие методы для исследования внутренних сигналов компонента SIL или PIL:
Вручную направляйте сигнал на верхний уровень.
Используйте глобальные данные хранилища для доступа к внутренним сигналам:
Внутри компонента соедините Data Store Write блок с необходимым сигналом.
Вне компонента используйте блок Data Store Read для доступа к значению сигналов.
Используйте логгирование MAT-файлов. Обратите внимание, что:
Логгирование MAT-файлов не поддерживает логгирование сигналов. Если логгирование сигнала включено, logsout
сгенерирован, но не сохранен в MAT-файле.
Для PIL целевое окружение должна поддерживать логгирование MAT-файлов.
Для получения дополнительной информации смотрите:
Используйте Model блок SIL/PIL или блок SIL/PIL с быстрым перезапуском, когда вы хотите запустить несколько SIL или PIL симуляций с:
Меняющиеся тестовые векторы (наборы параметров и входные данные).
Неизменный сгенерированный код, то есть ни одна из симуляций не регенерирует или не перестраивает код после первоначальной сборки. Для примера необходимо избежать инкрементальной генерации кода, к которой может привести начальное изменение значения.
Для Model блока SIL/PIL можно также использовать один из следующих методов:
В модели тестовой обвязки, в диалоговом окне Параметров конфигурации, установите Rebuild равным Never
. Если параметр Model блока Code interface Model reference
программное обеспечение не перестраивает ссылку на код модели. (Если параметр Code interface Top model
программа игнорирует настройку Rebuild.)
Создайте защищенную модель и сгенерируйте исходный или двоичный код. Затем вставьте защищенную модель в модель тестовой обвязки. С помощью этого метода можно проверить код верхней модели (с автономным интерфейсом кода) или модель-ссылка код.
Для альтернативных методов выполнения Model блока SIL/PIL, в следующей таблице суммируется поведение генерации кода после начальной сборки.
Подход SIL и PIL | Поведение генерации кода после начальной сборки | |
---|---|---|
Model блок | Rebuild параметру конфигурации тестовой обвязки задано значение Never . |
|
Model блок (защищенная модель) | Исходный код из защищенной модели. | Вы наблюдаете то же поведение, за исключением функции 2. В этом случае запускается make-файл кода компонента. Код компонента перекомпилирован и связан для создания нового объектного кода. |
Бинарный код из защищенной модели. | Вы наблюдаете функции 1-4. |
Для получения дополнительной информации смотрите:
Если ваша модель имеет блоки SIL/PIL или блоки Model в режиме SIL/PIL, можно ускорить проверку путем:
Выполнение симуляции верхней модели в режиме Accelerator. Этот режим ускоряет симуляцию компонентов модели, которые не находятся в SIL или PIL режиме.
Включение быстрого перезапуска. После первой симуляции можно настроить параметры и перезапустить симуляции без перекомпиляции модели. SIL/PIL Manager предоставляет кнопку Fast Restart.
Примечание
Режимы симуляции SIL и PIL не предназначены для сокращения времени симуляции модели. Если вы хотите ускорить симуляцию модели, используйте быстрый режим Accelerator. Для получения дополнительной информации смотрите Что такое ускорение?.
Используйте Simulink Function блок и Function Caller блок, когда вы хотите:
Сгенерируйте код, который вызывает функцию к внешнему коду, например, драйверу или унаследованному коду.
Обеспечьте подсистему, которая ведет себя как внешний код в нормальных, SIL или PIL симуляциях.
Пример в разделе «Настройка вызовов для авто-РСА службы NVRAM Manager (AUTOSAR Blockset)» показов, как можно настроить вызовы клиентов к сервисным интерфейсам Basic Software (BSW) NVRAM Manager (NvM) из программного компонента AUTOSAR. В симуляции Simulink реализует вызовы BSW NvM через Simulink Function и предварительно сконфигурированные блоки Function Caller. Для конечной системы вы соединяете заглушки вызова функции с кодом внешней функции BSW, который запускается в среде выполнения AUTOSAR (RTE).
Для получения дополнительной информации см. Simulink Function Блоков и Генерации кода.