exponenta event banner

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

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

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

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

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

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

Дополнительные сведения о том, как Simulink создает распространяемые метки сигналов, см. в разделе Как Simulink распространяет метки сигналов.

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

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

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

Соединительными блоками, поддерживающими распространение метки сигнала, являются:

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

Диалоговое окно Signal Properties для сигнала показывает, поддерживает ли этот сигнал распространение метки сигнала. Параметр «Показать распространяемые сигналы» доступен только для блоков, поддерживающих распространение метки сигнала. Дополнительные сведения см. в разделе Отображение меток распространяемых сигналов.

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

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

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

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

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

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

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

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

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

  2. Останавливается при обнаружении блока, который:

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

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

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

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

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

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

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

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

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

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

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

Отображать распространяемые метки сигналов

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

Для отображения метки распространяемого сигнала для отдельного сигнала:

  1. Щелкните правой кнопкой мыши сигнал, для которого требуется отобразить метку распространенного сигнала, и выберите «Свойства».

  2. В диалоговом окне «Свойства сигнала» выберите «Показать распространяемые сигналы».

    Параметр Show programmated 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 отображает метку распространенного сигнала.

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

Обработка ссылочных моделей

Чтобы включить распространение меток сигналов для ссылочных моделей, в дополнение к шагам, описанным в разделе Отображение меток распространяемых сигналов (Display Propagated Signal Labels), используйте настройку по умолчанию для параметров конфигурации модели > Ссылка на модель (Model Referencing) > Распространить все метки сигналов из параметра модели. Другими словами, убедитесь, что параметр включен.

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

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

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

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

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

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

  • Изменяется активная модель исполнения или подсистема исполнения.

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

Связанные темы