Сконфигурируйте и запущенная SIL симуляция

Существует три способа запустить SIL и PIL симуляции. Можно использовать:

  • Топ-модель.

  • Блоки Model.

  • SIL и блоки PIL, которые вы создаете из подсистем.

Симуляция с топ-моделью

Сконфигурировать и запустить топ-модель SIL или PIL симуляция:

  1. Откройте свою модель.

  2. Выберите Simulation> Mode> Software-in-the-Loop (SIL) или Simulation> Mode> Processor-in-the-Loop (PIL). Эта опция доступна, только если модель сконфигурирована для ERT, GRT или цели AUTOSAR. Смотрите Образцовые Параметры конфигурации: Генерация кода (Simulink Coder) и Конфигурирует Генерацию кода AUTOSAR (AUTOSAR Blockset) для конфигурационной информации.

  3. Если вы уже не сделали так, в диалоговом окне Configuration Parameters, на панели Data Import/Export:

    • Во флажке Input и поле, задайте сигналы стимула (или тестовые векторы) для вашей топ-модели.

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

      • Во флажке Output и поле, задайте выходное журналирование.

      • Во флажке Signal logging и поле, задайте журналирование сигнала.

    • Отключите журналирование переменных Data Store Memory. Программное обеспечение не поддерживает эту опцию для этого режима симуляции. Если вы не снимаете флажок Data stores, программное обеспечение производит предупреждение, когда вы запускаете симуляцию.

  4. Если вы конфигурируете SIL симуляцию, задаете портативную опцию размеров слова. Можно затем переключиться беспрепятственно между режимами SIL и PIL. Выберите Code Generation> Verification> Enable portable word sizes.

  5. При необходимости сконфигурируйте:

    • Покрытие кода.

    • Профилирование выполнения кода.

    • Создание генерации кода сообщает и статические метрики кода.

  6. Запустите симуляцию.

Примечание

На операционной системе Windows® Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.

Вы не можете:

  • Закройте модель, в то время как симуляция запускается. Чтобы прервать симуляцию, в Командном окне, нажимают Ctrl+C.

  • Измените модель во время симуляции. Можно переместить блоки и строки, пока это не изменяет поведение модели.

Можно запустить топ-модель SIL или PIL симуляция с командой sim(model). Программное обеспечение поддерживает опцию команды sim SrcWorkspace для значения 'base'.

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

С топ-моделью SIL или PIL симуляция, Simulink® создает скрытую модель, modelName_wrapper. Симуляция генерирует код для модели и использует скрытую модель, чтобы вызвать этот код на каждом временном шаге. В результате при некоторых обстоятельствах, регистрируемые сигналы могут иметь суффикс _wrapper. Симуляция может также сгенерировать предупреждения, которые обращаются к скрытой модели. Например:

Warning: The model 'modelName_wrapper' has the 'Configuration Parameters' ...

Симуляция с блоками Model

Сконфигурировать блок Model для SIL или PIL симуляции:

  1. Откройте свою модель, например, rtwdemo_sil_modelblock.

  2. Щелкните правой кнопкой по своему блоку Model, например, Counter A. В контекстном меню выберите Block Parameters (ModelReference), который открывает диалоговое окно Function Block Parameters.

  3. От Simulation Mode выпадающий список выберите необходимый режим, например, Software-in-the-loop (SIL).

  4. От Code interface выпадающий список задайте код, что вы хотите протестировать, например, Model reference.

  5. Нажмите OK. Программное обеспечение отображает режим симуляции как метку блока.

    Если вы выбираете Top model, программное обеспечение отображает метку (SIL: Top) блока.

  6. Если вы конфигурируете SIL симуляцию, задаете портативную опцию размеров слова. Можно затем переключиться беспрепятственно между режимами SIL и PIL. Выберите Code Generation> Verification> Enable portable word sizes.

  7. При необходимости сконфигурируйте:

    • Покрытие кода.

    • Профилирование выполнения кода для вашего блока Model, путем конфигурирования профилирования выполнения для топ-модели.

    • Создание генерации кода сообщает и статические метрики кода.

  8. Запустите симуляцию.

Примечание

На операционной системе Windows Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.

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

Симуляция с блоками от подсистем

Создать блок SIL или PIL от подсистемы и использовать этот блок, чтобы протестировать код, сгенерированный от подсистемы:

  1. От Configuration Parameters> Code Generation> Verification> Advanced Parameters> Create block выпадающий список, выберите SIL или PIL.

  2. При необходимости сконфигурируйте профилирование выполнения кода.

  3. Нажмите OK.

  4. В вашем окне модели щелкните правой кнопкой по подсистеме, которую вы хотите моделировать.

  5. Выберите C/C++ Code> Build This Subsystem.

  6. Нажмите Build, который запускает процесс сборки подсистемы, который создает блок SIL или PIL для сгенерированного кода подсистемы.

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

  8. Запустите симуляции с моделью тестовой обвязки или средой.

Примечание

На операционной системе Windows Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.

Вы не можете создать блок SIL или PIL, если вы выполняете одно из следующих действий:

  • Отключите свойство CreateSILPILBlock.

  • Выберите инструмент покрытия кода.

Create block появляется, потускнел.

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

Сконфигурируйте настройки аппаратной реализации

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

ПодходДетали
Портативные размеры слова

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

Чтобы сконфигурировать модель, чтобы использовать портативные размеры слова, установите:

  • ProdEqTarget к 'on'.

  • PortableWordSizes к 'on'.

Когда вы генерируете код для модели с портативными заданными размерами слова, генератор кода conditionalizes определения типов в rtwtypes.h:

#ifdef PORTABLE_WORDSIZES           /* PORTABLE_WORDSIZES defined */

…

#else                               /* PORTABLE_WORDSIZES not defined */

…

#endif                              /* PORTABLE_WORDSIZES */

Make-файл шаблона, который вы используете, чтобы создать код для вашей цели, не должен содержать определение PORTABLE_WORDSIZES.

Для make-файла шаблона и подходов набора инструментальных средств к строительным нормам и правилам, программное обеспечение задает -DPORTABLE_WORDSIZES для компилятора только для основанных на хосте сборок.

Для получения информации о make-файле шаблона и подходах набора инструментальных средств к строительным нормам и правилам, смотрите, Выбирают Build Approach и Configure Build Process (Simulink Coder).

Рассмотрите случай, где ваша цель использует код, который не может скомпилировать ваш компьютер разработчика. Когда вы переключаетесь от режима PIL до режима SIL и пытаетесь моделировать модель, вы видите ошибки компиляции. Можно попытаться работать вокруг этой проблемы путем добавления файлов исходного кода в группу SkipForSil в информационном объекте сборки RTW.BuildInfo. SIL основываются на серверной платформе, не компилирует исходные файлы, существующие в группе SkipForSil. Для получения информации о том, как вы добавляете файлы исходного кода в группу в информационном объекте сборки, видите:

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

  • Ваша модель содержит блоки, реализованные в TLC, для которого интегральное продвижение C в выражениях может вести себя по-другому между хостом MATLAB® и производственной аппаратной целью. Соответствие результатов нормальной и PIL симуляции, но результаты SIL симуляции может отличаться.

  • Ваше производственное оборудование реализует округление к Floor для деления целого числа со знаком и делений в вашем образцовом режиме Ceiling округления использования, Floor, Simplest или Zero. Соответствие результатов нормальной и PIL симуляции, но результаты SIL симуляции может отличаться.

  • Порядком байтов для вашего производственного оборудования является Big Endian. Соответствие результатов нормальной и PIL симуляции, но результаты SIL симуляции может отличаться. Например, когда сгенерированный код зависит от порядка байтов, и сгенерированный производственный код реализован с целью, что ее поведение совпадает с нормальным поведением симуляции.

  • Вы используете пользовательский код с продуктом Stateflow®. В этом случае операторы преобразования типов не вставляются в пользовательский код, которые предназначаются для поведения переполнения на хосте, может потребовать. Соответствие результатов нормальной и PIL симуляции, но результаты SIL симуляции может отличаться.

Протестируйте оборудование

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

Набор:

  • PortableWordSizes к 'off'.

  • ProdEqTarget к 'off'.

  • TargetHWDeviceType к 'Custom Processor->MATLAB Host Processor'.

Производственное оборудование

Используйте этот подход только, когда производственные аппаратные настройки будут совпадать с вашей архитектурой компьютера разработчика.

Набор:

  • PortableWordSizes к 'off'.

  • ProdEqTarget к 'on'.

  • ProdHWDeviceType, чтобы совпадать с вашей архитектурой компьютера разработчика.

Для получения информации о тесте и производственных платформах, смотрите, Конфигурируют Опции Среды выполнения (Simulink Coder).

Регистрируйте внутренние сигналы компонента

SIL и выходные параметры компонента PIL доступны для наблюдения и сравнения с другим режимом симуляции выходные параметры. Если вы хотите исследовать внутренний сигнал, можно включить внутреннее журналирование сигнала для топ-модели или блока Model SIL или PIL. С журналированием сигнала вы можете:

  • Соберите журналирование сигнала выходные параметры во время симуляций SIL/PIL, например, logsout.

  • Регистрируйте внутренние сигналы и корневой уровень выходные параметры компонента SIL/PIL.

  • Управляйте сигналом SIL/PIL журналирование настроек с Селектором Журналирования Simulink Signal.

  • Используйте инспектора данных моделирования для:

    • Наблюдайте переданные потоком сигналы во время нормального, SIL и PIL симуляций.

    • Сравните регистрируемые сигналы от нормального, SIL и PIL симуляций.

Для SIL и журналирования сигнала PIL:

  • Установите Configuration Parameters> Data Import/Export> Format к Dataset.

  • Установите флажок Configuration Parameters> Code Generation> Interface> Generate C API for: signals.

    API C определяет адреса внутренних сигналов, которые требуют журналирования.

Можно использовать другие методы, чтобы исследовать внутренние сигналы SIL или компонента PIL:

  • Вручную направьте сигнал к верхнему уровню.

  • Используйте хранилища глобальных данных, чтобы получить доступ к внутренним сигналам:

    1. В компоненте соедините блок Data Store Write с необходимым сигналом.

    2. Вне компонента используйте блок Data Store Read, чтобы получить доступ к значению сигналов.

  • Используйте журналирование MAT-файла. Обратите внимание на то, что:

    • Журналирование MAT-файла не поддерживает журналирование сигнала. Если журналирование сигнала включено, logsout сгенерирован, но не сохранен в MAT-файле.

    • Для PIL целевое окружение должно поддержать журналирование MAT-файла.

Для получения дополнительной информации см.:

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

Используйте блок Model SIL/PIL или блок SIL/PIL с быстрым перезапуском когда это необходимо, чтобы запустить несколько SIL или PIL симуляции с:

  • Переменные тестовые векторы (наборы параметра и входные данные).

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

Для блока Model SIL/PIL можно также использовать один из этих методов:

  • В вашей модели тестовой обвязки, набор Configuration Parameters> Model Referencing> Rebuild к Never. Если блок Model, параметром Code interface является Model reference, программное обеспечение, не восстанавливает типовой кодекс, на который ссылаются. (Если параметром Code interface является Top model, программное обеспечение игнорирует установку Rebuild.)

  • Создайте защищенную модель и сгенерируйте исходный или двоичный код. Затем вставьте защищенную модель в свою модель тестовой обвязки. С этим методом можно проверить код топ-модели (с автономным интерфейсом кода) или код модели - ссылки.

Для альтернативных методов рабочего блока Model SIL/PIL следующая таблица обобщает поведение генерации кода после начальной сборки.

SIL и подход PILПоведение генерации кода после начальной сборки
Блок ModelConfiguration Parameters> Model Referencing> Rebuild набора модели тестовой обвязки к Never.
  1. Компонент (алгоритм) код от начальной сборки не регенерирован.

  2. Make-файл кода компонента не называется.

  3. Файлы приложения SIL/PIL от начальной сборки не регенерированы.

  4. Make-файл приложения SIL/PIL называется.

Блок Model (защищенная модель)Исходный код из защищенной модели.Вы наблюдаете то же поведение за исключением функции 2. В этом случае make-файл кода компонента запущен. Код компонента перекомпилирован и соединен, чтобы произвести новый объектный код.
Двоичный код из защищенной модели.Вы наблюдаете функции 1–4.

Для получения дополнительной информации см.:

Ускорьте тестирование

Если ваша модель имеет блоки SIL/PIL или блоки Model в режиме SIL/PIL, можно ускорить тестирование SIL/PIL:

  • Выполнение симуляции топ-модели в режиме Accelerator (Simulink). Этот режим ускоряет симуляцию компонентов модели, которые не находятся в режиме SIL или PIL.

  • Включение быстро перезапускает (Simulink) с кнопкой Fast restart на панели инструментов Simulink Editor. После первой симуляции вы можете настройки параметров и повторно выполнять симуляции без образцовой перекомпиляции.

Примечание

SIL и режимы PIL симуляции не разработаны для сокращения времен симуляции модели. Если вы хотите ускорить симуляцию своей модели, используйте быстрый режим Accelerator. Для получения дополнительной информации смотрите то, Что Ускорение? (Simulink).

Симуляция с вызовами функции

Используйте блок Функциональный блок и Function Caller Simulink когда это необходимо для:

  • Сгенерируйте код, который делает вызов функции к внешнему коду, например, драйверу или унаследованному коду.

  • Обеспечьте подсистему, которая ведет себя как внешний код в нормальном, SIL или PIL симуляциях.

Пример в Конфигурирует Вызовы менеджера AUTOSAR NVRAM, которого показывает Сервис (AUTOSAR Blockset), как можно сконфигурировать клиентские вызовы Basic Software (BSW) NVRAM менеджер (NvM) сервисные интерфейсы от компонента программного обеспечения AUTOSAR. В симуляции Simulink реализует вызовы BSW NvM через Функцию Simulink и предварительно сконфигурировал Функциональные блоки Вызывающей стороны. Для итоговой системы вы соединяете тупики вызова функции с внешним кодом функции BSW, который запускается в Среде выполнения AUTOSAR (RTE).

Для получения дополнительной информации смотрите Функциональные блоки Simulink и Генерацию кода (Simulink Coder).

Похожие темы