Выберите метод, чтобы определить, когда перестроить симуляцию и Simulink® Coder™ цели для моделей-ссылок перед обновлением, симуляцией или генерацией кода из модели.
Category: Модели ссылки
По умолчанию:
If any changes detected
Always
Всегда перестраивайте целевые объекты для ссылочных моделей. Этот параметр требует наибольшего времени вычислений, поскольку может вызвать ненужные сборки. Чтобы обновить все цели модели-ссылки, используйте эту настройку перед развертыванием модели.
If any changes detected
Условно перестраивайте цели для ссылок на модели, когда Simulink обнаруживает изменение, которое может повлиять на результаты симуляции. Чтобы выполнить обширное обнаружение изменений от зависимостей ссылочных моделей, используйте эту настройку.
Если Simulink не находит изменений в известных зависимостях, он вычисляет структурную контрольную сумму модели. Структурная контрольная сумма обнаруживает изменения, которые происходят в созданных пользователем зависимостях, которые не заданы с помощью параметра конфигурации Model dependencies. Если структурная контрольная сумма изменилась, Simulink перестраивает цель модели-ссылки.
If any changes in known dependencies detected
Условно перестраивайте цели для ссылок на модели, когда Simulink обнаруживает изменение, которое может повлиять на результаты симуляции. Чтобы уменьшить время, необходимое для обнаружения изменений, используйте эту настройку.
Если Simulink не находит изменений в известных или потенциальных зависимостях, он не вычисляет структурную контрольную сумму модели и не перестраивает цель модели-ссылки. Чтобы избежать недопустимых результатов симуляции, необходимо перечислить все созданные пользователем зависимости в параметре Model dependencies.
Never
Не перестраивайте целевые объекты для ссылок на модели. Эта настройка требует наименьшего времени вычислений и, когда она доступна, использует файлы кэша Simulink для более быстрых симуляций. Чтобы избежать перестроений при разработке модели, используйте эту настройку.
Если цели модели-ссылки устарели, симуляция может представить недопустимые результаты. Чтобы иметь Simulink Check на изменения в известных целевых зависимостях и сообщить, если цели модели-ссылки могут быть устаревшим, используйте параметр Never rebuild diagnostic. Чтобы вручную перестроить цели модели-ссылки, используйте slbuild
функция.
Дополнительные сведения об использовании и совместном использовании файлов кэша Simulink см. в разделе «Обмен файлами кэша Simulink для более быстрой симуляции».
Известными целевыми зависимостями являются файлы и данные, внешние по отношению к файлам модели, которые Simulink исследует на изменения при проверке актуальности цели модели-ссылки. Simulink автоматически вычисляет набор известных целевых зависимостей. Примерами известных целевых зависимостей являются:
Изменения в рабочем пространстве модели, если его источником данных является MAT-файл или MATLAB® файл
Перечисленные определения типов
Пользовательские S-функции и их файлы TLC
Файлы, указанные в параметре Model dependencies
Внешние файлы, используемые Stateflow®, блок MATLAB Function или блок MATLAB System
Подсистемы Dataflow - Анализ подсистем dataflow требует, чтобы цель симуляции перестроилась в профиль и снова перестроилась, чтобы разбить подсистему. В сложение, цель симуляции должна перестроиться, если машина, выполняющая симуляцию, имеет меньше ядер, чем подсистема, для использования, примера, если цель симуляции в последний раз была построена на машине с большим количеством ядер. Для получения дополнительной информации смотрите Simulation of Dataflow Domains (DSP System Toolbox).
Потенциальными целевыми зависимостями являются файлы и данные, внешние по отношению к файлам модели и настройкам конфигурации модели, которые Simulink исследует на изменения при проверке актуальности цели модели-ссылки. Simulink автоматически вычисляет набор потенциальных целевых зависимостей. Примерами потенциальных целевых зависимостей являются:
Изменения глобальных переменных
Изменения в целях моделей, на которые ссылается эта модель
Configuration Parameters> Diagnostics> Data Validity> Signal resolution параметр, когда установлено в любого Explicit and implicit
или Explicit and warn implicit
Simulink исследует каждую потенциальную целевую зависимость, чтобы определить, вызывает ли ее состояние структурную проверку контрольной суммы.
Созданные пользователем зависимости являются файлами, которые Simulink не идентифицирует автоматически, несмотря на их потенциальное влияние на результаты симуляции. Примерами пользовательских зависимостей являются:
Файлы MATLAB, которые содержат код, выполняемый коллбэками
MAT-файлы, которые содержат определения для переменных, используемых моделью, которые загружаются как часть настраиваемого скрипта инициализации
Можно добавить пользовательские зависимости к набору известных целевых зависимостей с помощью параметра Model dependencies.
Структурная контрольная сумма является расчетом, используемым для обнаружения изменений в модели, которые могут повлиять на результаты симуляции. Когда Simulink вычисляет структурную контрольную сумму, он загружает и компилирует модель. Чтобы скомпилировать модель, Simulink должен выполнить коллбэки и получить доступ ко всем переменным, которые использует модель. Структурная контрольная сумма обнаруживает изменения в пользовательских зависимостях, независимо от того, задали ли вы эти пользовательские зависимости в параметре Model dependencies.
Для получения дополнительной информации о типах изменений, которые влияют на структурную контрольную сумму, см. Simulink.BlockDiagram.getChecksum
.
Модели в иерархии модели могут иметь различные настройки перестроения. Когда вы обновляете, моделируете или генерируете код для модели, настройка перестроения для этой модели применяется ко всем ее ссылочным моделям.
Модели, которые выполняются в режиме normal mode, не генерируют цели симуляции и не затронуты настройками Rebuild.
Чтобы улучшить скорость и точность обнаружения перестроения, используйте параметр конфигурации Model dependencies, чтобы задать пользовательские зависимости.
Этот график потока описывает обработку, которую Simulink выполняет, когда вы устанавливаете Rebuild на If any changes detected
или If any changes in known dependencies detected
.
Этот пример объясняет различие между If any changes detected
и If any changes in known dependencies detected
настройки.
Если вы измените файл MATLAB, который выполняется как часть скрипта коллбэка, который вы не перечислили в параметре Model dependencies:
If any changes detected
вызывает перестроение, поскольку изменение влияет на структурную контрольную сумму модели.
If any changes in known dependencies detected
не вызывает перестроение, поскольку не изменилась известная целевая зависимость.
Выбор Never
включает параметр Never rebuild diagnostic.
Параметр: UpdateModelReferenceTargets |
Значение:
'Force' | 'IfOutOfDateOrStructuralChange' | 'IfOutOfDate' | 'AssumeUpToDate' |
По умолчанию:
'IfOutOfDateOrStructuralChange' |
UpdateModelReferenceTargets Значение | Эквивалентное Rebuild значение |
---|---|
'Force' | Always |
'IfOutOfDateOrStructuralChange' | If any changes detected |
'IfOutOfDate' | If any changes in known dependencies detected |
'AssumeUpToDate' | Never |
Приложение | Настройка |
---|---|
Отладка | Никакого влияния |
Трассируемость | Никакого влияния |
Эффективность | Никакого влияния |
Меры безопасности |
Если вы используете |
Начиная с R2019b, If any changes detected
игнорирует косметические изменения, такие как изменение положения блока.