Используйте 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) или тип данных, такой как 'half'. Чтобы задать пользовательский тип данных, введите выражение 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 предупреждает вас в процессе моделирования, если значение сигналов больше максимального значения (см. проверку диапазона Симуляции).

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

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

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

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

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

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

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

  • Блоки Merge

Unit

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

Storage class

Класс памяти этого сигнала. Для получения дополнительной информации смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder) и Организуйте Данные о Параметре в Структуру при помощи Класса памяти Struct (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 диалогового окна Model Configuration Parameters, выберите параметр конфигурации модели Simulink data object descriptions. Для получения дополнительной информации см. описания Объекта данных Simulink (Embedded Coder).

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