exponenta event banner

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

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

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

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

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

    1. Откройте обозреватель моделей.

    2. На панели Иерархия модели (Model Hierarchy) выберите узел Рабочая область (Base workspace) или Рабочая область модели (Model workspace) в зависимости от контекста, который требуется для объекта сигнала. При создании сигнального объекта в рабочем пространстве модели необходимо задать для параметра класса Storage значение Auto.

    3. Выберите «Добавить» > «Simulink Signal».

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

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

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

      При использовании этого метода установите для параметров конфигурации > Диагностика > Валидность данных > Разрешение сигнала значение, отличное от None. Чтобы использовать только явное разрешение (рекомендуется), задайте для параметра значение Explicit only.

    • Неявное разрешение: Установите для опции Параметры конфигурации > Диагностика > Валидность данных > Разрешение сигнала для модели значение Explicit and implicit или Explicit and warn implicit. Предпочтительным методом является явное разрешение.

  4. Назначьте сигнальный объект переменной рабочей области.

  5. Свяжите объект сигнала с сигналом источника.

Проверка

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

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

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

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

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

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

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

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

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

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

  • При использовании блока Спецификация сигнала (Signal Specification) значения свойств сигнала отображаются непосредственно на блок-схеме, но это усложняет модель и требует ее редактирования для изменения значений свойств сигнала.

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

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

Определение свойств Sig1 сигнал можно просмотреть в обозревателе моделей. В этой модели время выборки равно -1 и тип данных: auto.

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

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

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

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

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

Если задать тип данных объекта сигнала как объект шины, то невозможно связать объект сигнала с сигналом, не являющимся сигналом шины.

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

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

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

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

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

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

Примеры и программная информация о Simulink.Signal, см. Simulink.Signal.

Тип данных

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

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

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

Сложность

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

Размеры

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

Режим «Размеры»

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

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

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

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

Время выборки

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

Минимум

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

Примечание

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

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

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

  • Если включена диагностика проверки диапазона моделирования, Simulink предупреждает во время моделирования, если значение сигнала меньше минимального значения (см. раздел Проверка диапазона моделирования).

Максимум

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

Примечание

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

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

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

  • Если включена диагностика проверки диапазона моделирования, Simulink предупреждает во время моделирования, если значение сигнала превышает максимальное значение (см. раздел Проверка диапазона моделирования).

Минимальное сохраненное целое число

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

Максимальное хранимое целое число

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

Начальное значение

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

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

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

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

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

Если начальное значение вычисляется как структура MATLAB, то в диалоговом окне Параметры конфигурации (Configuration Parameters) задайте для параметра Обнаружение недозаданной инициализации значение simplified.

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

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

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

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

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

  • Отчётные блоки условно выполненных подсистем

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

Единица

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

Класс хранения

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

При создании сигнального объекта в рабочей области модели необходимо задать для класса хранения объектов значение Auto.

Идентификатор

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

Выравнивание

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

Описание

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

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

  • Укажите класс хранения для объекта сигнала, отличного от Auto.

  • На панели «Создание кода» > «Комментарии» диалогового окна «Параметры конфигурации модели» выберите параметр конфигурации модели «Описания объектов данных Simulink». Дополнительные сведения см. в разделе Описания объектов данных Simulink (встроенный кодер).

См. также