Использование Simulink.Signal Объекты для определения и управления атрибутами сигнала

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

Использование объектов сигнала для назначения или проверки атрибутов сигнала

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

  1. Создайте Simulink.Signal объект, имя которого совпадает с именем сигнала, которому вы хотите назначить атрибуты или атрибуты которого вы хотите проверить.

    1. Откройте Model Explorer.

    2. На панели Иерархия модели выберите либо рабочее базовое рабочее пространство, либо узел рабочего пространства модели, в зависимости от контекста, необходимого для объекта сигнала. Если вы создаете объект сигнала в рабочем пространстве модели, необходимо задать параметр Storage class равным Auto.

    3. Выберите Add > Simulink Signal.

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

  3. Включите явное или неявное разрешение сигнала:

    • Явное разрешение: В диалоговом окне Signal Свойств для сигнала включите Signal имени должно разрешиться к Сигналу Simulink объекту. Это предпочтительный метод. Дополнительные сведения см. в разделе Явное и неявное разрешение символов.

      Когда вы используете этот метод, задайте Configuration Parameters > Diagnostics > Data Validity > Signal resolution значение, отличное от None. Чтобы использовать только явное разрешение (лучшая практика), установите параметр равным Explicit only.

    • Неявное разрешение: Установите опцию Configuration Parameters > Diagnostics > Data Validity > Signal resolution для модели равной Explicit and implicit или Explicit and warn implicit. Явное разрешение является предпочтительным методом.

  4. Присвойте объект сигнала переменной рабочей области.

  5. Ассоциируйте объект сигнала с исходным сигналом.

Валидация

Результат, когда сигнал не совпадает с сигнальным объектом, может зависеть от нескольких факторов. Simulink® программное обеспечение может подтвердить свойство сигнала при обновлении схемы, во время выполнения симуляции или обоих. Когда и как происходит валидация, может зависеть от внутренних правил, которые могут быть изменены, а иногда и от настроек параметров конфигурации.

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

Если значение Configuration Parameters > Diagnostics > Data Validity > Simulation range checking none (по умолчанию), Simulink не применяет никаких минимальных и максимальных значений сигналов во время симуляции, даже несмотря на то, что объект сигнала предоставил или подтвердил их. Чтобы применить минимальные и максимальные значения сигналов во время симуляции, установите Проверку области значений симуляции на warning или error. Смотрите Specify Signal Ranges and Model Configuration Parameters: Data Validity Diagnostics для получения дополнительной информации.

Несколько сигнальных объектов

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

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

Ошибка во время компиляции возникает, если модель связывает более одного объекта сигнала с любым сигналом. Чтобы предотвратить ошибку, решите, какой объект вы хотите использовать сигнал, затем удалите или перенастройте все ссылки на любые другие объекты сигнала, чтобы все оставшиеся ссылки разрешились на выбранный объект сигнала. Смотрите Highlight Signal Sources and Destinations для описания методов, которые можно использовать, чтобы проследить полную степень сигнала.

Блок спецификации сигнала: альтернатива Simulink.Signal

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

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

  • Использование блока Спецификация отображает значения свойств сигнала непосредственно в блок-схеме, но усложняет модель и требует ее редактирования, чтобы изменить значения свойств сигнала.

Следующие две модели иллюстрируют соответствующие преимущества двух способов присвоения атрибутов сигналу.

В первом примере сигнальный объект с именем Sig1 задает шаг расчета и тип данных сигнала, излучаемого входом портом In1.

Определение свойств Sig1 сигнал, можно просмотреть объект сигнала в Model Explorer. В этой модели шаг расчета -1 и тип данных auto.

Использование объекта сигнала для определения свойств шага расчета и типа данных Sig1 сигнала позволяет вам изменять шаг расчета или тип данных без необходимости редактирования модели. Для примера можно использовать Model Explorer, MATLAB® командная строка или программа MATLAB для изменения этих свойств.

Второй пример использует блок Signal Спецификации, задающий шаг расчета и тип данных сигнала, излучаемого входом портом In2. Блок Спецификация отображает тип данных и свойства шага расчета сигнала прямо в схеме, которые в этом случае uint8 и 4, соответственно.

Поддержка шины

Использование объектов шины в качестве типа данных

Simulink.Signal поддерживает невиртуальные шины в качестве типа выходных данных.

Если вы задаете, что Data type объекта сигнала является объектом шины, то вы не можете связать объект сигнала с сигналом без шины.

Использование структур для начального значения

Если вы используете объект шины в качестве типа данных, задайте Initial value 0 или структуру MATLAB, которая соответствует объекту шины.

Заданная структура должна содержать значение для каждого элемента шины, представленного объектом шины.

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

Вы можете использовать Simulink.Bus.createObject для создания объекта шины из структуры MATLAB.

Диалоговое окно свойств

Для примеров и программной информации о Simulink.Signal, см. Simulink.Signal.

Data type

Тип данных сигнала. Запись по умолчанию, auto, указывает, что Simulink должен определять тип данных. Используйте соседний выпадающий список, чтобы задать встроенные типы данных (для примера, uint8) или типа данных, такого как 'half'. Чтобы задать пользовательский тип данных, введите выражение MATLAB, которое задает тип (для примера, переменной базового рабочего пространства, которая ссылается на Simulink.NumericType объект).

Чтобы задать объект шины в качестве типа данных для объекта сигнала, используйте Bus: <object_name> опция. Для получения дополнительной информации о том, что необходимо делать при указании объекта шины в качестве типа данных, см. раздел Поддержка шины.

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Data type. (См. раздел «Задание типов данных с использованием Data Type Assistant».)

Complexity

Числовой тип сигнала. Допустимые значения auto (определяется Simulink), real, или complex.

Dimensions

Размерности этого сигнала. Допустимые значения -1 (по умолчанию) с указанием любых размерностей, N определение векторного сигнала размера N, или [M N] установка MxN матричный сигнал.

Dimensions mode

Размерности этого сигнала. В раскрывающемся списке выберите

  • Auto - Разрешает сигналы переменного размера и фиксированного размера.

  • Фиксированный - Разрешает только сигналы фиксированного размера. Не разрешает использование сигналов переменного размера.

  • Переменная - Разрешает только сигналы переменного размера.

Sample time

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

Minimum

Минимальное значение, которое должен иметь сигнал. Значение по умолчанию [] (не определено). Задайте конечное, вещественное, двойное, скалярное значение.

Примечание

Если вы задаете объект шины в качестве типа данных для сигнала, не устанавливайте минимальное значение для данных шины в диалоговом окне свойства сигнала. Simulink игнорирует эту настройку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о свойстве Minimum элемента шины смотрите Simulink.BusElement.

Simulink использует это значение следующими способами:

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

  • Когда вы включаете диагностику Simulation range checking, Simulink предупреждает вас во время симуляции, если значение сигналов меньше минимального значения (см. «Проверка диапазона симуляции»).

Maximum

Максимальное значение, которое должен иметь сигнал. Значение по умолчанию [] (не определено). Задайте конечное, вещественное, двойное, скалярное значение.

Примечание

Если вы задаете объект шины в качестве типа данных для сигнала, не устанавливайте максимальное значение для данных шины в диалоговом окне свойства сигнала. Simulink игнорирует эту настройку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о свойстве Maximum элемента шины смотрите Simulink.BusElement.

Simulink использует это значение следующими способами:

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

  • Когда вы включаете диагностику Simulation range checking, Simulink предупреждает вас во время симуляции, если значение сигналов больше максимального значения (см. «Проверка диапазона симуляции»).

Stored Integer Minimum

Для объектов сигнала с типом данных с фиксированной точкой минимальное значение, которое должен иметь сигнал, заданное как сохраненное целое число. Значение определяется из реальной Minimum значений. Это свойство доступно только в диалоговом окне свойств.

Stored Integer Maximum

Для объектов сигнала с типом данных с фиксированной точкой максимальное значение, которое должен иметь сигнал, заданное как сохраненное целое число. Значение определяется из реальной Maximum значений. Это свойство доступно только в диалоговом окне свойств.

Initial value

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

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

mySigObject.InitialValue='5.3';
mySigObject.InitialValue = 'myNumericVariable';

Чтобы задать начальное значение для сигнала, который использует тип числовых данных, отличный от double, приведите начальное значение к типу данных сигнала. Для примера можно задать single(73.3) использовать 73.3 как начальное значение для сигнала типа данных single.

Если вы используете объект шины в качестве типа данных для объекта сигнала, установите Initial value на вектор символов, содержащий 0 или структуру MATLAB, которая соответствует объекту шины. Для получения дополнительной информации см. поддержку шины».

Если начальное значение вычисляется в структуре MATLAB, то в диалоговом окне Configuration Parameters установите значение Underspectified initialization detection simplified.

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

Классический режим инициализации: В этом режиме начальные настройки для объектов сигнала, которые представляют следующие сигналы и состояния, переопределяют соответствующие начальные значения параметров блоков, если они не определены (заданы как []):

  • Выходные сигналы условно выполненных подсистем и блоков Merge

  • Состояния блока

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

  • Outport блоки условно выполняемых подсистем

  • Merge блоки

Unit

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

Storage class

Класс памяти этого сигнала. Для получения дополнительной информации смотрите Строение Генерации кода C для Элементов Интерфейса Модели (Simulink Coder) и Организуйте Данные Параметра в Структуру при помощи Класса Памяти (Embedded Coder).

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

Identifier

Альтернативное имя для этого сигнала. Simulink игнорирует эту настройку. Это свойство используется для генерации кода.

Alignment

Контур выравнивания данных, указанная в количестве байтов. Начальный адрес памяти для данных, выделенных для сигнала, будет кратным Alignment настройке. Значение по умолчанию -1, который определяет, что генератор кода должен определять оптимальное выравнивание на основе использования. В противном случае задайте положительное целое число, которое является степенью 2, не превышающей 128. Это поле предназначено для использования программным обеспечением Simulink Coder™. См. «Выравнивание данных для замены кода» (Embedded Coder). Программа Simulink игнорирует этот параметр.

Description

Описание этого сигнала. Это поле предназначено для использования при документировании этого сигнала. Это свойство используется Simulink Report Generator и для генерации кода.

Если у вас есть Embedded Coder® лицензия, вы можете добавить описание сигнала в качестве комментария для объявления переменной в сгенерированном коде.

  • Задайте класс памяти для объекта сигнала кроме Auto.

  • На панели Code Generation > Comments диалогового окна Параметры конфигурации модели выберите Simulink data object descriptions параметра конфигурации модели. Для получения дополнительной информации см. Описание объекта данных Simulink (Embedded Coder).

См. также