Распространение метки сигнала

Можно дать имена сигнала сигналов и сконфигурировать распространение имен сигнала в модели Simulink®, чтобы отследить метку сигнала через один блок или много блоков. Для списка поддерживаемых блоков смотрите Блоки, Что Сигнал Поддержки Маркирует Propagation.

Когда вы называете сигнал и включаете отображение распространения метки сигнала для выходных сигналов позволенных блоков:

  • Если существует заданное пользователями имя сигнала, тот Simulink может распространить, распространенная метка сигнала включает имя в угловые скобки (например, <sig1>).

  • Если нет никакого имени сигнала, чтобы распространить, Simulink отображает пустое множество угловых скобок (<>) для метки.

Например, в следующей модели, выходной сигнал блока Subsystem сконфигурирован для распространения метки сигнала. Распространенная метка сигнала (<const>) основан на имени восходящего выходного сигнала блока Constant (const).

Для получения дополнительной информации о том, как Simulink создает распространенные метки сигнала, смотрите, Как Simulink Распространяет Метки Сигнала.

Блоки, которые поддерживают сигнал, помечают распространение

Можно использовать распространение метки сигнала с выходными сигналами для нескольких блоков связи, которые направляют сигналы через модель, не изменяя данные. Блоки связи не выполняют преобразования сигнала.

Кроме того, Model блокирует распространение метки сигнала поддержки.

Блоки связи, которые поддерживают распространение метки сигнала:

Bus Creator и блоки Bus Selector не поддерживают распространение метки сигнала. Однако, если вы хотите просмотреть иерархию для какого-либо сигнала шины, используйте Иерархию Шины Отображения.

Диалоговое окно Signal Properties для сигнала указывает, поддерживает ли тот сигнал распространение метки сигнала. Параметр Show propagated signals доступен только для блоков, которые поддерживают распространение метки сигнала. Для получения дополнительной информации смотрите Отображение Распространенные Метки Сигнала.

Как Simulink распространяет метки сигнала

В общем случае Simulink последовательно выполняет распространение метки сигнала:

  • Для различных построений моделирования (например, нешина и сигналы шины, виртуальные и невиртуальные шины, подсистема и варианты модели, ссылка модели и библиотеки)

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

  • При загрузке модели, редактировании, обновлении и временах симуляции

Для получения информации о некоторых особых случаях см.:

Общая обработка распространения метки сигнала

В общем случае, когда вы включаете распространение метки сигнала для выходного сигнала блока (например, BlockA), Simulink выполняет следующую обработку, чтобы найти, что исходное имя сигнала распространяет:

  1. Проверяет блок, подключения выходного сигнала которого к BlockA, и при необходимости, продолжает проверять восходящие блоки, работая назад от самого близкого блока до самого дальнего блока.

  2. Остановки, когда это сталкивается с блоком что также:

    • Распространение метки сигнала поддержек и имеет имя сигнала

    • Не поддерживает распространение метки сигнала

  3. Получает имя сигнала, если таковые имеются, выходного сигнала для блока, в котором останавливается Simulink.

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

Например, в следующей модели, предположите, что вы включаете распространение метки сигнала для выходного сигнала для блока Subsystem (то есть, сигнал, соединенный с Out1 порт.

Simulink Check в подсистеме, проверках выше From и блоков GoTo (то, которые поддерживают распространение метки сигнала и не имеют имени), и затем проверяет дальше в восходящем направлении с блоком Constant, который не поддерживает распространение метки сигнала.

Simulink использует имя сигнала выходного сигнала блока Constant, const. Распространенной меткой сигнала для выходного сигнала блока Subsystem является <const>.

Если бы выходной сигнал блока Constant не имел имени сигнала, то распространенная метка сигнала была бы пустым множеством угловых скобок (<>).

Предположим, что в блоке Subsystem вы включаете распространение метки сигнала для выходного сигнала блока In1, и вы используете диалоговое окно Signal Properties, чтобы задать имя сигнала const-from для выходного сигнала блока From, как показано ниже.

Распространенная метка сигнала для выходного сигнала блока Subsystem превращается в <const-from>, потому что это - первый именованный сигнал, что Simulink сталкивается в его обработке распространения метки сигнала.

В следующей модели распространение метки сигнала для выходного сигнала блока Subsystem использует имя сигнала bus1, который является именем сигнала выходной шины блока Bus Creator. Распространенная метка сигнала не включает имена сигналов элемента шины (a и b).

Отобразите распространенные метки сигнала

Можно отобразить распространенные метки сигнала для отдельных сигналов или отобразить распространенные метки сигнала для всех сигналов в модели. Чтобы отобразить метки для всех сигналов, в Редакторе Simulink, на вкладке Debug, выбирают Information Overlays> Propagated Signal Labels.

Отобразить распространенную метку сигнала для отдельного сигнала:

  1. Щелкните правой кнопкой по сигналу, для которого вы хотите отобразить распространенную метку сигнала и выбрать Properties.

  2. В диалоговом окне Signal Properties выберите Show propagated signals.

    Параметр Show propagated signals доступен только для выходных сигналов блоков, которые поддерживают распространение метки сигнала.

Чтобы включить это свойство сигнала программно, создайте указатель на сигнальную линию и задайте signalPropagation как 'on'. Например, можно использовать этот код, чтобы включить или отключить свойство для всех сигналов в диаграмме модели.

% Create an array of handles to every signal line in the diagram
signalLines = find_system(gcs,'FindAll','on','type','line');

% Enable or disable the property for each signal line
for i = 1:length(signalLines)

      % set(signalLines(i),'signalPropagation','off');
      set(signalLines(i),'signalPropagation','on');
end

Если сигнал уже имеет метку, то альтернативный подход для отображения распространенной метки сигнала:

  1. В диаграмме модели кликните по метке сигнала.

  2. Удалите текст метки.

  3. В поле текста метки сигнала введите угловую скобку (<).

  4. Щелкните вне метки сигнала.

    Simulink отображает распространенную метку сигнала.

Особые случаи распространения сигнала

Обработка для моделей, на которые ссылаются,

Чтобы включить распространение метки сигнала для моделей, на которые ссылаются, в дополнение к шагам, описанным в Отображении Распространенные Метки Сигнала, используют настройку по умолчанию для Model Configuration Parameters> Model Referencing> параметр Propagate all signal labels out of the model. Другими словами, убедитесь, что параметр включен.

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

Например, модель ex_signal_label_prop_model_ref имеет модель, на которую ссылаются, которая включает выходной сигнал блока In1, который имеет имя сигнала input_1.

Если вы включаете распространение метки сигнала для сигнала от порта Out1 блока Model, тот сигнал не отражает имя input_1 пока вы не обновляете схему или симулируете модель.

Обработка для вариантов и конфигурируемых подсистем

Simulink обновляет распространенную метку сигнала (если включено) для выходного сигнала Подсистемы или блока Model, когда оба из этих условий происходят:

  • Выходные сигналы для различных моделей имеют различные имена сигнала.

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

Для блоков Subsystem метка сигнала обновляется во время редактирования. Для блоков Model происходит обновление, когда вы обновляете схему или симулируете модель.

Похожие темы