exponenta event banner

Сокращение моделей, содержащих блоки исполнения

Примечание

Для сокращения модели требуется лицензия Simulink ® Design Verifier™.

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

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

Рассмотрим модель Редуктор исполнения (Variant Reducer). Модель содержит блок Источник исполнения (Variant Source), блок Получатель исполнения (Variant Sink) и блок Подсистема исполнения (Variant Subsystem) со следующими вариантами:

  • Источник варианта: V==1 и V==2

  • Приемник варианта: W==1, W==2, и W==3

  • Вариационная подсистема: V==1 и V==2

Предположим, что модель имеет две предопределенные конфигурации вариантов с именем config1 (V==1 && W==2) и config2 (V==2 && W==2). Эти конфигурации сохраняются в объекте данных конфигурации варианта, varConfig.

Чтобы уменьшить модель, выполните следующие действия.

  1. Щелкните правой кнопкой мыши значок исполнения и выберите «Открыть в Диспетчере исполнения». Откроется Диспетчер исполнения (Variant Manager), отображающий предопределенные конфигурации.

  2. Щелкните Уменьшить модель (Reduct model). Откроется диалоговое окно Редуктор исполнения (Variant Reducer).

  3. В разделе Режим сокращения выберите:

    • Текущие управляющие значения исполнения: уменьшение модели на основе ее значений управляющих переменных исполнения в глобальной рабочей области.

    • Указать конфигурации вариантов: чтобы уменьшить модель, связанную с объектом данных конфигурации вариантов, и конфигурации, которые будут сохранены в уменьшенной модели.

      Примечание

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

    • Указать управляющие значения исполнения (Specify variant control values): чтобы уменьшить модель на основе значений управляющих переменных исполнения. Можно создать несколько групп переменных, соответствующих различным конфигурациям. Щелкните Создать группу переменных, чтобы задать значения для переменных управления исполнениями. Можно либо указать управляющее значение варианта, либо выбрать Full-range или Ignored из раскрывающегося списка. Указание значения элемента управления исполнения в качестве вектора также позволяет уменьшить модель для всех комбинаций этой переменной. Например, если указаны значения V = 1 и W = [1,2], то модель уменьшается для конфигураций {V==1, W==1} и {V==1, W==2}. При выборе Full-range в качестве управляющего значения исполнения активизируется столбец Ссылочное значение (Reference Value), чтобы ввести ссылочное значение, необходимое для успешной компиляции модели. Модель уменьшается для всех допустимых значений указанной переменной управления исполнения. При выборе Ignored в качестве значения элемента управления исполнения, то эта переменная элемента управления исполнения не рассматривается при уменьшении модели.

      Примечание

      Чтобы использовать управляющую переменную варианта с полным диапазоном, в диалоговом окне параметров блока для блоков, использующих эту управляющую переменную типа Variant, необходимо установить значение code compile.

    Примечание

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

  4. Выберите Сохранить атрибуты сигнала (Preserve signal attributes), чтобы сохранить скомпилированные атрибуты сигнала между исходной и уменьшенной моделью. При выборе этой опции редуктор исполнения пытается сохранить скомпилированные атрибуты сигнала между исходной и уменьшенной моделями путем добавления блоков спецификации сигнала на соответствующих портах блока в уменьшенной модели. Атрибуты скомпилированного сигнала включают типы данных сигнала, размеры сигнала, время компиляции выборки и т. д.

  5. Выберите Создать подробный обзор (Generate detailed summary), чтобы создать сводный отчет по редуктору исполнения в папке вывода. Сводка по редуктору исполнения содержит сводку по опциям редуктора исполнения, первоначальным и сокращенным различиям модели, зависимым артефактам, обратным вызовам и предупреждениям.

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

    Примечание

    Для создания подробной сводки необходимо иметь лицензию Simulink Report Generator.

  6. Укажите значение в качестве суффикса в поле суффикс модели. Значение суффикса модели добавляется к сокращенным моделям, словарям данных и связанным артефактам. По умолчанию _r - суффикс.

  7. Укажите папку вывода для хранения уменьшенной модели.

    Примечание

    Установка флажка Открыть уменьшенную модель (Open reducted model) приводит к изменению текущей рабочей папки на папку вывода.

  8. Нажмите Уменьшить. Теперь создается уменьшенная модель для требуемых конфигураций. Если модель содержит разрешенные связи библиотеки или ссылочные модели, соответствующий родительский элемент уменьшается для указанной конфигурации и используется в модели. Уменьшенная модель, уменьшенная ссылочная модель и уменьшенная библиотека получают свои имена из соответствующей модели, ссылочной модели или библиотеки с _r (суффикс модели) прилагается к нему.

Рассмотрим модель Variant, которая содержит блок Simulink Function с условием Variant в блоке Simulink Function как V==1 || V==2 || V==3 || V==4. Если модель уменьшена для любого или комбинации доступных условий варианта, блок функции Simulink в уменьшенной модели является безусловным. Например, если модель уменьшена для условия исполнения, V=1, V=2, and V=3, блок Simulink Function в уменьшенной модели является безусловным. Тогда как, если модель уменьшена для условия Вариант, V=1, V=2, and V=5, блок Simulink Function в уменьшенной модели остается условным с V==1 || V==2 в качестве условия Variant.

Программное сокращение модели

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

Simulink.VariantManager.reduceModel(model,<Name>,<Value>)

Например,

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

    Simulink.VariantManager.reduceModel('sldemo_variant_subsystems')
  • Сокращение модели на основе значений переменных управления исполнениями в глобальной рабочей области до указанной папки.

    Simulink.VariantManager.reduceModel('sldemo_variant_subsystems', 'OutputFolder', 'outdir')
  • Чтобы уменьшить модель, которая связана с объектом данных конфигурации варианта и конфигурациями, которые будут сохранены в уменьшенной модели.

    Simulink.VariantManager.reduceModel('sldemo_variant_subsystems','NamedConfigurations', {'LinInterStd','NonLinExterHighFid'})
  • Уменьшение модели путем задания конфигураций в виде структуры переменных управления вариантами.

    Simulink.VariantManager.reduceModel('iv_model', 'VariableConfigurations', {'V',1,'W',[1 2]})

    Здесь задаются две конфигурации, соответствующие {V=1, W=1} и {V=1, W=2}соответственно.

  • Уменьшение модели путем указания управляющих значений исполнения, гдеw"" - это полнодиапазонное управляющее значение варианта ".

    Simulink.VariantManager.reduceModel('slexVariantReducer','VariableConfigurations',{'V',1},'FullRangeVariables',{'W',1});

    Здесь вычисляются четыре конфигурации, соответствующие {V==1, W==1}, {V==1, W==2}, {V==1, W==3} и {V==1, W==0} соответственно.

Дополнительные сведения о программном сокращении модели см. в разделе reduceModel.

Соображения и ограничения

  • Сокращение моделей, содержащих блок «Соединитель исполнения», не поддерживается.

  • Папка вывода для хранения уменьшенной модели не должна находиться в matlabroot.

  • Если папка вывода содержит variant_reducer.log из предыдущего сокращения модели, редуктор перезаписывает все файлы, доступные в выходных данных для любого последующего сокращения.

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

  • Во время сокращения модели комментируемые блоки, присутствующие на активном пути, сохраняются, а прокомментированные блоки, присутствующие на неактивном пути, удаляются.

  • Атрибуты сигнала (тип данных, сложность, размеры), поступающие из неактивных элементов в диаграммах Stateflow ®, не могут быть сохранены в уменьшенной модели.

Компоненты модели, которые не уменьшены

Эти компоненты модели не уменьшаются автоматически и могут потребовать ручного вмешательства. Чтобы определить такие артефакты, создайте сводку по редуктору исполнения, установив флажок Создать подробный итог (Generate detailed summary) в диалоговом окне Редуктор исполнения (Variant Reducer) во время сокращения модели.

  • Код обратного вызова:

    • Обратные вызовы, такие как InitFcn, PreLoad, PostLoad, код инициализации маски и код обратного вызова параметра маски должны быть изменены вручную.

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

  • Во время сокращения модели элементы холста Stateflow, включая переходы вариантов, не изменяются.

  • Если модель имеет зависимости от файлов, расположенных в matlabroot (библиотеки Simulink, .m файлы, .mat файлы, или .sldd файлы), они не изменяются и не копируются в папку вывода во время сокращения модели.

Связанные примеры

Подробнее