Отображение значений портов для отладки

Отображение значений портов для простой отладки

Для многих блоков, сигналы которых несут данные, Simulink® может отображать значения сигналов (выход блока) как метки значений портов (аналогично советам) на блок-схеме во время и после симуляции. Метки значений портов отображают выходные значения блоков, когда Simulink запускает методы выхода блоков. Эта модель показывает метку значения порта для портов на блоках Constant и Math, выходные значения 1 и 4.04.

Если метка значения порта отображается пустой, это означает, что значение порта в данный момент не доступно. Для примера переключение метки значения порта на непрерывном блоке при паузе во время симуляции не отображает значений в метке.

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

Если вы переключили или наведете на блок, который Simulink оптимизирует из симуляции (такой как блок виртуальной подсистемы), во время моделирования модель отображает текст optimized.

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

Эти результаты предполагают проблему с моделью, потому что:

  • Стоимость нагрева 0 при любых температурах.

  • Температура внутри дома почти точно соответствует температуре окружающей среды.

В таких случаях отладка блоков в модели в интерактивном режиме может помочь изолировать ошибку. Метки значений портов обеспечивают информацию на выходе каждого блока в модели. Так что в этом примере, если вы шагнете вперед с помощью Simulation Stepper, то можете увидеть, что выход Heater подсистемы 0 на каждом временном шаге.

Чтобы узнать больше, можно включить метки значений портов для блоков внутри подсистемы Heater. Используя Simulation Stepper, если вы снова шагнете вперед, чтобы отобразить значения, можно увидеть, что существует проблема с блоком HeatGain. Этот выход постоянен в 0.

Этот метод помогает вам изолировать проблему.

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

Для нечислового отображения данных Simulink использует следующие значения:

СообщениеОбъяснение
actionСигнал выполняет подсистемы действия.
fcn-callСигнал является сигналом вызова функции, например, выходом генератора вызова функции.
groundСигнал поступает от блока Ground.
not a data signalСигнал не содержит действительных данных, например, сигнал из блока, который комментируется.

В некоторых случаях:

  • Отображение значения порта может не иметь возможности получить сигнал значения или

  • Значение сигнала не может быть легко отображено

В таких случаях Simulink использует эти значения.

СообщениеОбъяснение
...Размерность сигнала превышает максимальное количество элементов, которые может отображать Simulink. Для получения дополнительной информации см. «Отображение значений портов для модели».
(сообщение отсутствует)Доступных данные моделирования недостаточно. Шаг вперед или нажмите play, чтобы получить больше данных.
click to add signalsВы активировали метку значения порта на шине. Однако вы не выбрали сигнал для отображения. Щелкните метку, чтобы выбрать сигналы шины.
inaccessibleSimulink не может получить значение порта. Для получения примера смотрите Signal Storage Reuse.
[m*n]Это сигнал невектора. Simulink не может отобразить фактические значения матрицы. Вместо этого отображается матричная размерность.
no data yet

Это сообщение появляется, когда:

  • Данные моделирования недоступны. Запустите симуляцию, чтобы увидеть значения.

  • Если модель содержит подсистемы (для примера, активированную подсистему) и модели-ссылки, и они не выполняются во время симуляции.

not usedSimulink не может получить значение сигналов из-за оптимизации.
removedSimulink не может получить значение сигналов из-за сокращения блока.
optimizedSimulink не может получить значение сигналов из-за оптимизации. В режиме normal mode это сообщение появляется для блоков с Conditional input branch execution включенными. Для получения дополнительной информации см. раздел «Обзор условно выполненных подсистем».
unavailableДоступных данные моделирования недостаточно. Для примера см. Симуляцию Шаговый.

Примечание

Можно заставить метку значения отобразить значение сигналов путем определения сигнала как тестовой точки. Для этого используйте диалоговое окно Properties.

Отображение значения для определенного порта

Чтобы отобразить значение определенного порта или значений портов для блока перед симуляцией, выберите один или несколько сигналов, щелкните правой кнопкой мыши выбор и выберите Show Value Label of Selected Port.

По умолчанию Simulink отображает значение сигнала, когда вы кликаете его во время симуляции. Вы можете управлять этим поведением. На вкладке Debug выберите > Options, затем в диалоговом окне «Параметры отображения меток значений» выберите Enable by default during simulation.

Примечание

Чтобы удалить все всплывающие подсказки, на вкладке Debug выберите > Remove Value Displays.

Для сигналов шины, опция Show Value Label of Selected Port открывает диалоговое окно, где вы можете выбрать из всех сигналов в шине. Например, в этой модели вы можете увидеть диалоговое окно для всех сигналов, которые содержатся в ModelBus.

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

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

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

Примечание

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

Отобразите значения портов для модели

Задайте формат отображения значений портов и частоту обновлений. Диалоговое окно Опции отображения метки значения (Value Label Display Options) управляет этими настройками на всей модели.

  1. В модели, значения портов которой вы хотите отобразить, на вкладке Debug, выберите > Options.

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

    • Параметры отображения, включая размер шрифта, частоту обновления и количество элементов, отображаемых для вектора сигналов с шириной сигнала более 1

    • Режим отображения

    • Формат с плавающей точкой или с фиксированной точкой

Ограничения отображения значений портов

Эффективность

Включение опции зависания для модели или установка хотя бы одного блока для Toggle Value Labels When Clicked замедляет симуляцию.

Ускоренные режимы

Значения портов работают только в режимах Normal и Accelerator. Они не работают в Rapid Accelerator и Режимы external mode. Таблица показывает, как режимы Accelerator влияют на отображение значений портов.

Ускоренный режимЗначения портов
Акселератор
  • Сигналы, не оптимизированные в режиме Accelerator, отображают значения портов как в режиме normal mode. Сигналы, оптимизированные в режиме Accelerator, отображают значения портов следующим optimized. Для получения дополнительной информации см. раздел «Отображение значений портов для легкой отладки».

  • Модели-ссылки блоков, моделируемые в режиме Accelerator, не обновляют отображения значений портов.

Быстрый AcceleratorНесовместимо. Ограничение существует, задает ли модель или ее родительский элемент ускоренную симуляцию. Для получения дополнительной информации смотрите Accelerate, Refine, and Test Hybrid Dynamic System on Хост-компьютер при помощи RSim System Target File (Simulink Coder).

Повторное использование памяти сигналов

Если буфер выходного порта блока разделяется с другим блоком посредством оптимизации повторного использования памяти сигналов, значение порта отображается следующим inaccessible. Можно отключить повторное использование памяти сигнала с помощью флажка Signal storage reuse. Однако отключение повторного использования памяти сигнала увеличивает память, используемую во время симуляции.

Типы данных сигналов

  • Simulink отображает значение порта для портов, подключенных к большинству видов сигналов, включая сигналы со встроенными типами данных (такими как double, int32, или Boolean), DYNAMICALLY_TYPED, и нескольких других типов данных.

  • Simulink показывает плавающий формат только для некомплексных значений сигналов дисплеев.

  • Simulink отображает значение порта типов данных с фиксированной точкой на основе преобразованного двойного значения.

  • Simulink не отображает данные для сигналов с некоторыми составными типами данных, такими как сигналы шины.

Подсистемы

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

  • Когда вы отключаете условно выполненную подсистему, значение порта отображает сигнал, который входит в блок Outport, значение блока Outport в зависимости от настройки Output when disabled.

  • Simulink не отображает данные для портов включенной подсистемы, которая не включена.

Симуляционный шаговый

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

Коэффициент уточнения

Отображения значения порта не соблюдают, совершенствуют значения фактора (Configuration Parameters> Data Import/Export> Additional parameters> Refine factor), потому что Simulink обновляет отображения значения порта только во время главных временных шагов.

Блок спецификации сигнала и блок Inport

Когда вы отображаете значения портов на блоках Signal Specification и Inport в подсистеме, значение, которое управляет блоками, отображается вместо значений блоков.

Симуляции командной строки

Для эффективности Simulink не поддерживает отображения значений портов во время симуляции командной строки с помощью sim команда.

Объедините блок

Simulink не отображает входные значения в блоке слияния. Чтобы увидеть это значение, обратитесь к исходному блоку.

Интерфейс командной строки

Вы не можете задать значения портов, отображаемые через интерфейс командной строки.

Несигналы Simulink

Вы не можете разместить значения портов на несигналах Simulink, таких как Simscape™ или SimEvents® сигналы. Это ограничение применяется и к условным точкам останова.

Похожие темы