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

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

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

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

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

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

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

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

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

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

    • Явное разрешение: В диалоговом окне Signal Properties для сигнала включите имя Сигнала, должен решить к объекту Сигнала 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, использующие объект сигнала, источник сигнала должен задать те же значения как объект сигнала (или наследовать значения от объекта), но такая валидация имеет отношение только к соглашению между источником и объектом, не к осуществлению минимальных и максимальных значений во время симуляции.

Если значение Параметров конфигурации> Диагностика> Валидность Данных> проверкой диапазона Симуляции является none (значение по умолчанию), Simulink не осуществляет минимальных и максимальных значений сигналов во время симуляции, даже при том, что обеспеченный объект сигнала или подтвердил их. Чтобы осуществить минимальные и максимальные значения сигналов во время симуляции, установите проверку диапазона Симуляции на warning или error. Смотрите Диапазоны сигнала и Образцовые Параметры конфигурации: Диагностика Валидности Данных для получения дополнительной информации.

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

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

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

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

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

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

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

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

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

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

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

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

Второе использование в качестве примера блок Signal Specification задает шаг расчета и тип данных сигнала, испускаемого входным портом In2. Блок Signal Specification отображает тип данных и свойства шага расчета сигнала прямо в схеме, которые в этом случае являются 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). Чтобы задать пользовательский тип данных, введите выражение MATLAB, которое задает тип, (например, переменная базового рабочего пространства, которая ссылается на объект Simulink.NumericType).

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

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

Complexity

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

Dimensions

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

Dimensions mode

Режим Dimensions этого сигнала. Из выпадающего списка выбрать

  • Автоматический — Позволяет сигналы фиксированного размера и переменный размер.

  • Зафиксированный — Позволяет только сигналы фиксированного размера. Не позволяет сигналы переменного размера.

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

Sample time

Уровень, на котором должно быть вычислено значение этого сигнала. См. Настройку времени выборки для деталей.

Minimum

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

Примечание

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

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

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

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

Maximum

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

Примечание

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

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

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

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

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, устанавливает обнаружение инициализации Underspecified на simplified.

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

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

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

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

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

  • Блоки выходного порта условно выполняемых подсистем

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

Unit

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

Storage class

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

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

Alias

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

Alignment

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

Description

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

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

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

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

Смотрите также