Simulink.Signal
Объекты для определения и управления атрибутами сигнала A Simulink.Signal
позволяет вам назначить или подтвердить атрибуты сигнала или дискретного состояния, такие как тип данных, числовой тип, размерности и так далее. Для получения программной и справочной информации смотрите Simulink.Signal
.
В этом разделе описывается, как можно использовать объекты сигнала для назначения или проверки атрибутов сигнала. Эти же методы работают и с дискретными состояниями. Чтобы использовать объект сигнала для назначения или проверки значений атрибутов сигнала:
Создайте Simulink.Signal
объект, имя которого совпадает с именем сигнала, которому вы хотите назначить атрибуты или атрибуты которого вы хотите проверить.
Откройте Model Explorer.
На панели Иерархия модели выберите либо рабочее базовое рабочее пространство, либо узел рабочего пространства модели, в зависимости от контекста, необходимого для объекта сигнала. Если вы создаете объект сигнала в рабочем пространстве модели, необходимо задать параметр Storage class равным Auto
.
Выберите Add > Simulink Signal.
Установите свойства объекта, которые соответствуют атрибутам, не заданным источником сигнала, или которые соответствуют атрибутам, которые вы хотите проверить. Для получения дополнительной информации см. Диалоговое окно свойств.
Включите явное или неявное разрешение сигнала:
Явное разрешение: В диалоговом окне 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
. Явное разрешение является предпочтительным методом.
Присвойте объект сигнала переменной рабочей области.
Ассоциируйте объект сигнала с исходным сигналом.
Присвойте сигналу то же имя что и переменной рабочей области, которая ссылается на объект сигнала.
Можно использовать различные методы, чтобы связать объект сигнала с сигналом. Для примеров смотрите Использование объектов сигнала для инициализации сигналов и дискретных состояний, Использование объектов сигнала для настройки начальных значений и Организация данных параметра в структуру при помощи класса Памяти (Embedded Coder).
Результат, когда сигнал не совпадает с сигнальным объектом, может зависеть от нескольких факторов. 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
.
Тип данных сигнала. Запись по умолчанию, auto
, указывает, что Simulink должен определять тип данных. Используйте соседний выпадающий список, чтобы задать встроенные типы данных (для примера, uint8
) или типа данных, такого как 'half'
. Чтобы задать пользовательский тип данных, введите выражение MATLAB, которое задает тип (для примера, переменной базового рабочего пространства, которая ссылается на Simulink.NumericType
объект).
Чтобы задать объект шины в качестве типа данных для объекта сигнала, используйте Bus: <object_name>
опция. Для получения дополнительной информации о том, что необходимо делать при указании объекта шины в качестве типа данных, см. раздел Поддержка шины.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Data type. (См. раздел «Задание типов данных с использованием Data Type Assistant».)
Числовой тип сигнала. Допустимые значения auto
(определяется Simulink), real
, или complex
.
Размерности этого сигнала. Допустимые значения -1
(по умолчанию) с указанием любых размерностей, N
определение векторного сигнала размера N
, или [M N]
установка MxN
матричный сигнал.
Размерности этого сигнала. В раскрывающемся списке выберите
Auto - Разрешает сигналы переменного размера и фиксированного размера.
Фиксированный - Разрешает только сигналы фиксированного размера. Не разрешает использование сигналов переменного размера.
Переменная - Разрешает только сигналы переменного размера.
Скорость, с которой значение этого сигнала должно быть вычислено. Для получения дополнительной информации см. раздел «Задание шага расчета».
Минимальное значение, которое должен иметь сигнал. Значение по умолчанию []
(не определено). Задайте конечное, вещественное, двойное, скалярное значение.
Примечание
Если вы задаете объект шины в качестве типа данных для сигнала, не устанавливайте минимальное значение для данных шины в диалоговом окне свойства сигнала. Simulink игнорирует эту настройку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о свойстве Minimum элемента шины смотрите Simulink.BusElement
.
Simulink использует это значение следующими способами:
При обновлении схемы или запуске симуляции Simulink генерирует ошибку, если начальное значение сигнала меньше минимального значения или если минимальное значение находится вне области значений для типа данных сигнала.
Когда вы включаете диагностику Simulation range checking, Simulink предупреждает вас во время симуляции, если значение сигналов меньше минимального значения (см. «Проверка диапазона симуляции»).
Максимальное значение, которое должен иметь сигнал. Значение по умолчанию []
(не определено). Задайте конечное, вещественное, двойное, скалярное значение.
Примечание
Если вы задаете объект шины в качестве типа данных для сигнала, не устанавливайте максимальное значение для данных шины в диалоговом окне свойства сигнала. Simulink игнорирует эту настройку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о свойстве Maximum элемента шины смотрите Simulink.BusElement
.
Simulink использует это значение следующими способами:
При обновлении схемы или запуске симуляции Simulink генерирует ошибку, если начальное значение сигнала больше максимального значения или если максимальное значение находится вне области значений типа данных сигнала.
Когда вы включаете диагностику Simulation range checking, Simulink предупреждает вас во время симуляции, если значение сигналов больше максимального значения (см. «Проверка диапазона симуляции»).
Для объектов сигнала с типом данных с фиксированной точкой минимальное значение, которое должен иметь сигнал, заданное как сохраненное целое число. Значение определяется из реальной Minimum значений. Это свойство доступно только в диалоговом окне свойств.
Для объектов сигнала с типом данных с фиксированной точкой максимальное значение, которое должен иметь сигнал, заданное как сохраненное целое число. Значение определяется из реальной Maximum значений. Это свойство доступно только в диалоговом окне свойств.
Сигнал или значение состояния перед тем, как симуляция сделает свой первый временной шаг. Можно задать любое выражение 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 блоки
Физическая единица измерения, в котором выражено значение этого сигнала (для примера, дюймов). Чтобы задать модуль, начните вводить текстовое поле. При вводе в параметре отображаются потенциальные модули соответствия. Для получения дополнительной информации смотрите Спецификацию единиц измерения в Моделях Simulink.
Класс памяти этого сигнала. Для получения дополнительной информации смотрите Строение Генерации кода C для Элементов Интерфейса Модели (Simulink Coder) и Организуйте Данные Параметра в Структуру при помощи Класса Памяти (Embedded Coder).
Если вы создаете объект сигнала в рабочем пространстве модели, необходимо задать класс памяти объекта равным Auto
.
Альтернативное имя для этого сигнала. Simulink игнорирует эту настройку. Это свойство используется для генерации кода.
Контур выравнивания данных, указанная в количестве байтов. Начальный адрес памяти для данных, выделенных для сигнала, будет кратным Alignment настройке. Значение по умолчанию -1
, который определяет, что генератор кода должен определять оптимальное выравнивание на основе использования. В противном случае задайте положительное целое число, которое является степенью 2, не превышающей 128. Это поле предназначено для использования программным обеспечением Simulink Coder™. См. «Выравнивание данных для замены кода» (Embedded Coder). Программа Simulink игнорирует этот параметр.
Описание этого сигнала. Это поле предназначено для использования при документировании этого сигнала. Это свойство используется Simulink Report Generator и для генерации кода.
Если у вас есть Embedded Coder® лицензия, вы можете добавить описание сигнала в качестве комментария для объявления переменной в сгенерированном коде.
Задайте класс памяти для объекта сигнала кроме Auto
.
На панели Code Generation > Comments диалогового окна Параметры конфигурации модели выберите Simulink data object descriptions параметра конфигурации модели. Для получения дополнительной информации см. Описание объекта данных Simulink (Embedded Coder).