Уменьшайте модели, содержащие различные блоки

Примечание

Вы требуете, чтобы лицензия Simulink® Design Verifier™ уменьшала вашу модель.

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

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

Рассмотрите модель Variant Reducer. Модель содержит Различный Исходный блок, блок Variant Sink и Различный блок 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. Щелкните правой кнопкой по различному значку и выберите Open in Variant Manager. Различный менеджер открывает отображение предопределенных настроек.

  2. Нажмите Reduce model. Диалоговое окно Variant Reducer открывается.

  3. В разделе Reduction mode выберите:

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

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

      Примечание

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

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

      Примечание

      Чтобы использовать полнофункциональную контрольную переменную варианта, опция Analyze all choices during update diagram and generate preprocessor conditional должна быть выбрана в диалоговом окне параметров блоков блоков, которое использует ту Различную контрольную переменную.

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

  5. Выберите Generate detailed summary, чтобы сгенерировать Различные сводные данные Редуктора в выходной папке. Различные сводные данные Редуктора содержат сводные данные Variant Reducer Options, Original and Reduced Model Differences, Dependent Artifacts, Callbacks и Warnings.

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

    Примечание

    Чтобы сгенерировать подробные сводные данные, у вас должна быть лицензия Simulink Report Generator.

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

  7. Задайте выходную папку, чтобы сохранить упрощенную модель.

    Примечание

    Выбор флажка Open reduced model изменяет текущую рабочую папку на выходную папку.

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

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

Уменьшайте модель программно

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

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} and {V==1, W==0} соответственно.

Для получения дополнительной информации о сокращении модели программно, смотрите reduceModel.

Факторы и ограничения

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

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

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

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

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

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

  • Во время снижения сложности модели сохраняется подарок диаграмм Stateflow на активном пути, в то время как подарок диаграмм Stateflow на неактивном пути удален. Однако они не уменьшаются.

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

Больше о