Вы требуете, чтобы лицензия Simulink® Design Verifier™ уменьшала вашу модель.
Различная модель может содержать несколько переменных структур и одну фиксированную структуру. Комбинация переменной структуры и фиксированной структуры, чтобы создать модель зависит от различных комбинаций вариантов, которые вы выбираете. Каждая комбинация вариантов может храниться как различная настройка.
Различные модели могут уменьшаться до упрощенной, автономной модели в зависимости от выбранных различных настроек. Кроме того, все связанные файлы и переменные зависимости также уменьшаются. Эти уменьшаемые артефакты группированы в заданную пользователями выходную папку.
Различная модель, содержащая блок Subsystem Reference, не может уменьшаться.
Рассмотрите модель Variant Reducer. Модель содержит блок Variant Source, блок Variant Sink и блок Variant Subsystem с этими вариантами:
Variant Source: V==1
и V==2
Variant Sink: W==1
, W==2
, и W==3
Variant Subsystem: V==1
и V==2
Примите, что модель имеет две предопределенных различных настройки, названные config1
(V==1 && W==2
) и config2
(V==2 && W==2
). Эти настройки сохранены в различном объекте данных конфигурации, varConfig
.
Чтобы уменьшать модель, выполните следующие шаги:
Щелкните правой кнопкой по различному значку и выберите Open in Variant Manager. Различный менеджер открывает отображение предопределенных настроек.
Нажмите Reduce model. Диалоговое окно Variant Reducer открывается.
В разделе 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 должна быть выбрана в диалоговом окне параметров блоков блоков, которое использует ту Различную контрольную переменную.
Если вы вызовете различное сокращение путем определения переменных групп, упрощенная модель будет иметь различные настройки, соответствующие переменным группам сопоставленный с ним. Это перезаписывает любые существующие различные настройки, существующие в исходной модели.
Выберите Preserve signal attributes, чтобы сохранить скомпилированные атрибуты сигнала между исходной и упрощенной моделью. Когда эта опция выбрана, Различный Редуктор пытается сохранить скомпилированные атрибуты сигнала между исходными и упрощенными моделями путем добавления блоков спецификации сигнала в соответствующих портах блока в упрощенной модели. Скомпилированные атрибуты сигнала включают типы данных сигнала, размерности сигнала, скомпилированные шаги расчета, и так далее.
Выберите Generate detailed summary, чтобы сгенерировать Различные сводные данные Редуктора в выходной папке. Различные сводные данные Редуктора содержат сводные данные Variant Reducer Options, Original and Reduced Model Differences, Dependent Artifacts, Callbacks и Warnings.
Подробные сводные данные могут использоваться, чтобы получить информацию трассируемости между исходной и упрощенной моделью. Это также помогает в идентификации артефактов, которые не могут быть обработаны автоматически и вмешательство руководства потребности. Например, коды коллбэка, которые, возможно, должны быть изменены.
Чтобы сгенерировать подробные сводные данные, у вас должна быть лицензия Simulink Report Generator.
Задайте значение как суффикс в поле Model suffix. Суффиксное значение модели добавлено к упрощенным моделям, словарям данных и связанным артефактам. По умолчанию, _r
суффикс.
Задайте выходную папку, чтобы сохранить упрощенную модель.
Выбор флажка Open reduced model изменяет текущую рабочую папку в выходную папку.
Нажмите Reduce. Упрощенная модель для необходимых настроек теперь создается. Если модель содержит разрешенные ссылки библиотеки или модели, на которые ссылаются, соответствующий родительский элемент уменьшается для заданной настройки и ссылается в модели. Упрощенная модель, уменьшаемая модель, на которую ссылаются и уменьшаемая библиотека получают их имена из соответствующей модели, модели, на которую ссылаются или библиотеки с _r
(Model suffix) добавлен к нему.
Рассмотрите модель Variant, которая содержит блок Simulink Function с Различным условием на блоке Simulink Function как V==1 || V==2 || V==3 || V==4
. Если модель уменьшается для кого-либо или комбинации доступных Различных условий, блок Simulink Function в упрощенной модели является безусловным. Например, если модель уменьшается для Различного условия, V=1, V=2, and V=3
, блок Simulink Function в упрощенной модели является безусловным. Принимая во внимание, что, если модель уменьшается для Различного условия, V=1, V=2, and V=5
, блок Simulink Function в упрощенной модели остается условным с 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
файл от предыдущего снижения сложности модели, редуктор перезаписывает все файлы, доступные в том выходе для любого последующего сокращения.
Код коллбэка:
Коллбэки модели, код инициализации маски и коды коллбэка параметра маски должны быть изменены вручную.
InitFcn, MaskEval, PreLoad, PostLoad и любые разовые редактированием коды коллбэка от различных неактивных компонентов (модели, блоки, сигналы, и т.д.) удалены. Это может вызвать неожиданное поведение в упрощенной модели.
Дополнительные блоки добавляются автоматически к упрощенной модели, чтобы гарантировать сопоставимую семантику симуляции. Дополнительные блоки могут включать блоки Signal Specification для сопоставимых атрибутов сигнала (тип данных, размерности, сложность) или Ground и блоки Terminator для несвязанных сигналов.
Во время снижения сложности модели, прокомментировал, что подарок блоков на активном пути сохраняется, в то время как прокомментированный подарок блоков на неактивном пути удален.