Симулируйте несколько экземпляров модели, на которые ссылаются, в режиме normal mode

Видимость режима normal mode

Все экземпляры модели, на которую ссылаются, которые симулируют в режиме normal mode, являются частью симуляции. Однако только один экземпляр режима normal mode модели, на которую ссылаются, поддерживает всю визуализацию данных. Например, значение осциллографов и порта помечает данные об отображении только для экземпляра, которому включили видимость режима normal mode. Чтобы просмотреть результаты симуляции для всех экземпляров модели, на которую ссылаются, используйте Simulation Data Inspector. Чтобы просмотреть специфичные для экземпляра данные для каждого экземпляра модели, которая симулирует в режиме normal mode, используйте блоки Display в модели, на которую ссылаются.

Чтобы установить видимость режима normal mode, в топ-модели, на вкладке Simulation, в галерее Prepare, под Signal Monitoring, нажимают Normal Mode Visibility. Эта установка определяет экземпляр, которому включили видимость режима normal mode. Если вы не задаете видимость режима normal mode для экземпляра модели, на которую ссылаются, Simulink® программное обеспечение выбирает, который экземпляру модели, на которую ссылаются, включили видимость режима normal mode.

После симуляции, при попытке открыть модель, на которую ссылаются, от блока Model, который не имеет видимости режима normal mode, программное обеспечение Simulink выводит предупреждение.

Чтобы настроить вашу модель, чтобы управлять, какой экземпляр модели, на которую ссылаются, в режиме normal mode имеет видимость и гарантировать соответствующую симуляцию модели, смотрите, Задают Экземпляр, Имеющий Видимость Режима normal mode.

Исследуйте модели с несколькими экземплярами модели, на которые ссылаются,

sldemo_mdlref_basic модель имеет три блока Model (CounterA, CounterB, и CounterC) то, что каждая ссылка sldemo_mdlref_counter модель. Если вы обновляете схему, sldemo_mdlref_basic отображает различные значки для каждого из трех блоков Model.

Блок ModelУглы значкаРежим симуляции и установка видимости режима normal mode
CounterAБелый Режим normal mode, с включенной видимостью режима normal mode
CounterBСерые углыРежим normal mode, с отключенной видимостью режима normal mode
CounterCЧерный уголРежим Accelerator (видимость режима normal mode не применима),

Откройте и симулируйте sldemo_mdlref_basic. Дважды кликните блок Model под названием CounterA и откройте блок Scope под названием ScopeA.

Осциллограф отображает результаты симуляции для блока Model под названием CounterA, которому включили видимость режима normal mode.

Если вы открываете sldemo_mdlref_counter модель путем двойного клика по блоку Model под названием CounterB, осциллограф в sldemo_mdlref_counter все еще показывает результаты блока Model под названием CounterA потому что тому блоку включили видимость режима normal mode.

Для получения дополнительной информации о sldemo_mdlref_basic, смотрите Компонентно-ориентированное Моделирование с Моделью - ссылкой.

Для примера, который использует Зависимость Анализатор для иерархии модели, которая содержит несколько экземпляров модели, на которую ссылаются, в режиме normal mode, смотрите, Визуализируют Иерархии Модели - ссылки.

Сконфигурируйте модели с несколькими экземплярами модели, на которые ссылаются,

  1. Определите Общий номер экземпляров, позволенных на параметр топ-модели Multiple.

  2. Установите каждый экземпляр модели, на которую ссылаются так, чтобы это использовало режим normal mode. В диалоговом окне параметров блоков для блока Model, который ссылается на экземпляр, устанавливает параметр Simulation Mode на Normal. Убедитесь, что все предки в иерархии для того блока Model находятся в режиме normal mode.

    Углы значков для блоков Model, которые находятся в режиме normal mode, могут быть белые (пустой). Углы стали серыми после того, как вы обновите схему или симулируете модель.

  3. При необходимости измените S-функции, используемые моделью так, чтобы они работали с несколькими экземплярами моделей, на которые ссылаются, в режиме normal mode. Для получения дополнительной информации смотрите Поддержку Использования Нескольких Экземпляров Моделей, на которые Ссылаются, Которые Находятся в Режиме normal mode.

По умолчанию Simulink присваивает видимость режима normal mode одному из экземпляров. После того, как вы завершите шаги настройки, можно задать экземпляр не по умолчанию, чтобы иметь видимость режима normal mode.

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

Определите, какой экземпляр имеет видимость режима normal mode

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

  1. Чтобы применить установку видимости режима normal mode, обновите схему и не внесите никакие другие изменения в модель.

  2. Исследуйте блоки Model, которые ссылаются на модель, которой вы интересуетесь. Блоку Model, который имеет белые углы, включили видимость режима normal mode.

Когда вы отредактируете модель или во время компиляции после обновления схемы, используйте ModelReferenceNormalModeVisibilityBlockPath параметр. Результатом является Simulink.BlockPath объект, который является блоком path для блока Model, который ссылается на модель, которой включили видимость режима normal mode. Например:

get_param('sldemo_mdlref_counter',...
'ModelReferenceNormalModeVisibilityBlockPath')
ans = 

  Simulink.BlockPath
  Package: Simulink

  Block Path:
    'sldemo_mdlref_basic/CounterA'

Для топ-модели, которую вы симулируете или это находится в скомпилированном состоянии, можно использовать CompiledModelBlockNormalModeVisibility параметр. Например:

a = get_param('sldemo_mdlref_depgraph',...
'CompiledModelBlockNormalModeVisibility')
a = 

  struct with fields:

       sldemo_mdlref_F2C: [1×1 Simulink.BlockPath]
    sldemo_mdlref_heater: [1×1 Simulink.BlockPath]

Когда вы создаете Simulink.BlockPath объект для определения видимости режима normal mode:

  • Первый вектор символов должен представлять блок, который находится в топ-модели иерархии модели - ссылки.

  • Векторы символов должны представлять блоки Model, которые находятся в режиме normal mode.

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

Задайте экземпляр, имеющий видимость режима normal mode

Примечание

Вы не можете изменить видимость режима normal mode в процессе моделирования.

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

  1. Перейдите топ-модели.

  2. На вкладке Simulation, в разделе Prepare, под Signal Monitoring, выбирают Normal Mode Visibility.

    Диалоговое окно Normal Mode Visibility блока Model появляется. Например, вот диалоговое окно для sldemo_mdlref_basic модель, с расширенной панелью иерархии:

    Панель иерархии модели показывает частичную иерархию модели для модели, из которой вы открыли диалоговое окно. Иерархия останавливается в первом блоке Model, который не находится в режиме normal mode. Панель иерархии модели не отображает блоки Model, та ссылка защитила модели.

    Диалоговое окно показывает полную иерархию модели для топ-модели. Экземпляры режима normal mode моделей, на которые ссылаются, имеют флажки.

    Совет

    Чтобы иметь панель иерархии модели диалогового окна Normal Mode Visibility блока Model отражают иерархию текущей модели, нажимают Refresh.

  3. Выберите экземпляр модели, что вы хотите иметь видимость режима normal mode.

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

    Совет

    Чтобы открыть модель от диалогового окна Normal Mode Visibility блока Model, щелкните правой кнопкой по модели по иерархии модели, разделяют на области и затем нажимают Open.

  4. Чтобы применить установку видимости режима normal mode, симулируйте топ-модель в иерархии модели.

Как альтернатива использованию диалогового окна Normal Mode Visibility блока Model, в MATLAB® командная строка можно использовать ModelBlockNormalModeVisibility параметр. Для входа можно задать одно из этих значений:

  • Массив Simulink.BlockPath объекты. Например:

    bp1 = Simulink.BlockPath({'mVisibility_top/Model',  ...
    'mVisibility_mid_A/Model'});
    bp2 = Simulink.BlockPath({'mVisibility_top/Model1', ...
    'mVisibility_mid_B/Model1'});
     bps = [bp1, bp2];
     set_param(topMdl,'ModelBlockNormalModeVisibility',bps);
    
  • Массив ячеек массивов ячеек из символьных векторов, с векторами символов, являющимися путями к отдельным блокам и моделям. Этот пример производит тот же эффект как пример объектного массива:

    p1 = {'mVisibility_top/Model','mVisibility_mid_A/Model'};
    p2 = {'mVisibility_top/Model1','mVisibility_mid_B/Model1'};
    set_param(topMdl,'ModelBlockNormalModeVisibility',{p1, p2});
    
  • Пустой массив, чтобы задать использование выбора значения по умолчанию Simulink экземпляра, который имеет видимость режима normal mode. Например:

    set_param(topMdl, 'ModelBlockNormalModeVisibility', []);

    Используя пустой массив эквивалентно сниманию всех флажков в диалоговом окне Normal Mode Visibility блока Model.

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

Больше о