Симулируйте несколько образцы модели-ссылки в режиме Normal Mode

Видимость режима Normal Mode

Все образцы режима normal mode ссылочных моделей являются частью симуляции. Однако Simulink® программа отображает только один образец в окне модели. Видимость в режиме normal mode включает отображение блоков Scope и значений портов данных.

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

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

Чтобы настроить модель для управления тем, какой образец модели-ссылки в режиме normal mode имеет видимость, и для обеспечения правильной симуляции модели, см. Раздел «Задайте образец, имеющий видимость режима Normal Mode».

Исследуйте модели с несколькими образцами модели-ссылки

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

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

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

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

Если вы пытаетесь открыть sldemo_mdlref_counter модель путем двойного клика по блоку CounterB Model, ScopeA в sldemo_mdlref_counter все еще показывает результаты блока CounterA Model, поскольку этот блок имеет включенную видимость в режиме 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. Для получения дополнительной информации смотрите Поддержка использования нескольких Образцов ссылок на Модели, которые находятся в нормальном режиме.

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

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

Определите, какой образец имеет видимость в режиме Normal Mode

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

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

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

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

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

   Simulink.BlockPath
   Package: Simulink

   Block Path:
      'sldemo_mdlref_basic/CounterA'

Для верхней части, которую вы симулируете или которая находится в скомпилированном состоянии, можно использовать CompiledModelBlockInstancesBlockPath параметр. Для примера:

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

         sldemo_mdlref_F2C: [1x1 Simulink.BlockPath]
      sldemo_mdlref_heater: [1x1 Simulink.BlockPath]
sldemo_mdlref_outdoor_temp: [1x1 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.

    Откроется диалоговое окно Блок Model Normal Mode Visibility (Видимость режима normal mode). Например, вот диалоговое окно для sldemo_mdlref_basic модель с развернутой панелью иерархии:

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

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

    Совет

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

  3. Выберите образец модели, который должен иметь видимость в режиме normal mode.

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

    Совет

    Чтобы открыть модель из диалогового окна Блока Model Режима normal mode Видимость (Visibility), щелкните правой кнопкой мыши модель в панели иерархии модели и выберите Open.

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

В качестве альтернативы использованию диалогового окна Блок Model Normal Mode Visibility, в 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', []);

    Использование пустого массива эквивалентно снятию всех флажков в диалоговом окне Блока Model Режима normal mode видимости.

Похожие примеры

Подробнее о