Simulink.Parameter

Хранение, совместное использование и конфигурирование значений параметров

Описание

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

Использование Simulink.Parameter объект для:

  • Поделитесь значением между несколькими параметрами блоков.

  • Представление инженерной константы или настраиваемого параметра калибровки.

  • Разделите значение параметров от его типа данных и других свойств.

  • Сконфигурируйте данные параметра для генерации кода.

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

Для получения дополнительной информации о параметрах блоков смотрите Set Block Parameter Values и Как Сгенерированный код хранит Внутренний сигнал, Состояние и Данные параметра (Simulink Coder).

Создание

Создайте Simulink.Parameter объект:

Описание

paramObj = Simulink.Parameter возвращает Simulink.Parameter объект со значениями свойств по умолчанию.

paramObj = Simulink.Parameter(paramValue) возвращает Simulink.Parameter объект и инициализирует Value свойство к paramValue.

Свойства

расширить все

Для получения информации о свойствах в диалоговом окне свойств Simulink.Parameter объект, см. Simulink. Параметр Свойства Диалоговое окно.

Спецификации для генерации кода для объекта параметра, возвращенные как Simulink.CoderInfo объект.

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

Для примера, StorageClass свойство Simulink.CoderInfo объект определяет, как Simulink® тулбоксы генерации кода выделяют память для объекта параметра в сгенерированном коде. Для получения дополнительной информации смотрите Строение Генерации кода C для Элементов интерфейса модели (Simulink Coder) и Выберите класс памяти для управления представлением данных в Сгенерированном коде (Embedded Coder).

Числовая сложность значения параметров, возвращенная следующим 'real' (если значение реально) или 'complex' (если значение комплексное). Simulink определяет сложность из значения параметров, которое вы задаете в Value свойство. Это свойство доступно только для чтения.

Типы данных: char

Тип данных значения параметров в Value свойство, заданное как 'auto' или вектор символов. Когда вы моделируете модель или генерируете код, Simulink приводит значение к заданному типу данных.

Если вы задаете 'auto', настройка по умолчанию, объект параметра использует совпадающий тип данных, что и параметры блоков, которые используют объект. См. Раздел «Сокращение затрат на техническое обслуживание с наследованием типов данных».

Когда вы устанавливаете Value свойство для чего-то кроме double число, объект обычно устанавливает DataType свойство, основанное на значении Value свойство. Для примера, когда вы устанавливаете Value свойство к int8(5)объект устанавливает значение DataType свойство к 'int8'.

Чтобы явным образом задать встроенный тип данных (см. Типы данных, поддерживаемые Simulink), задайте одну из следующих опций:

  • 'double'

  • 'single'

  • 'half'

  • 'int8'

  • 'uint8'

  • 'int16'

  • 'uint16'

  • 'int32'

  • 'uint32'

  • 'int64'

  • 'uint64'

  • 'boolean'

Чтобы задать тип данных с фиксированной точкой, используйте fixdt функция. Для примера задайте 'fixdt(1,16,5)'.

Если вы используете Simulink.AliasType или Simulink.NumericType для создания и совместного использования пользовательских типов данных в модели укажите имя объекта.

Чтобы задать тип перечисленных данных, используйте имя типа, предшествующего Enum:. Для примера задайте 'Enum: myEnumType'.

Когда вы храните структуру или массив структур в Value свойство объекта, объект устанавливает DataType свойство к 'struct'. Как задать Simulink.Bus в качестве типа данных используйте имя объекта шины, предшествующего Bus:. Для примера задайте 'Bus: myBusObject'.

Пример: 'auto'

Пример: 'int8'

Пример: 'fixdt(1,16,5)'

Пример: 'myAliasTypeObject'

Пример: 'Enum: myEnumType'

Пример: 'Bus: myBusObject'

Типы данных: char

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

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

Пример: 'This parameter represents the maximum rotation speed of the engine.'

Типы данных: char

Размерности значения, хранимого в Value свойство, возвращаемое как вектор-строка или заданное как вектор символов.

Когда вы устанавливаете Value свойство объекта, объект устанавливает значение Dimensions свойство для double Вектор-строка. Вектор является тем же вектором, что и size функция возвращается.

Если вы конфигурируете объект как аргумент модели и намерены предоставить значение для объекта в другом месте иерархии ссылок родительской модели, можно покинуть Value свойство пусто (установлено на '[]') и установите Dimensions и Data Type свойства явно. См. «Параметризация Образцов переиспользуемой ссылочной Модели». Как восстановить Dimensions свойство как значение, выведенное из Value свойство, задание Dimensions на '[]'.

Чтобы использовать символические размерности, задайте вектор символов. Смотрите Реализуйте Варианты Размерности для Размеров Массивов в Сгенерированном Коде (Embedded Coder).

Пример: [1 3]

Пример: '[1 myDimParam]'

Типы данных: double | char

Максимальное значение, которое Value свойство объекта может храниться, заданное как реальное double скаляр.

Значение по умолчанию пусто, что означает, что значение параметров не имеет максимума.

Если вы храните комплексное число в Value свойство, Max свойство применяется отдельно к реальной и мнимой частям.

Если вы храните структуру в Value свойство, объект игнорирует Max свойство. Вместо этого используйте Simulink.Bus объект как тип данных объекта параметра и задайте максимальное значение для каждого поля при помощи элементов объекта шины. Смотрите Типы данных и Характеристики Управляющего поля путем Создания Объекта Параметра.

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

Для получения дополнительной информации о том, как Simulink использует это свойство, смотрите Задайте Минимальное и Максимальное Значения для Параметров блоков.

Пример: 5.32

Типы данных: double

Минимальное значение, которое Value свойство объекта может храниться, заданное как реальное double скаляр.

Значение по умолчанию пусто, что означает, что значение параметров не имеет минимума.

Если вы храните комплексное число в Value свойство, Min свойство применяется отдельно к реальной и мнимой частям.

Если вы храните структуру в Value свойство, объект игнорирует Min свойство. Вместо этого используйте Simulink.Bus объект как тип данных объекта параметра и задайте минимальное значение для каждого поля при помощи элементов объекта шины. Смотрите Типы данных и Характеристики Управляющего поля путем Создания Объекта Параметра.

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

Для получения дополнительной информации о том, как Simulink использует это свойство, смотрите Задайте Минимальное и Максимальное Значения для Параметров блоков

Пример: -0.92

Типы данных: double

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

Пример: 'degC'

Типы данных: char

Значение для использования в параметрах блоков, заданное как любое из следующих допустимых значений:

Если вы используете Simulink.Parameter объект, чтобы задать параметры блоков значение в повторно используемой модели-ссылке, можно скомпилировать и симулировать модель как модель-ссылку со значением для объекта, оставленным пустым (Value установить на '[]'), пока вы задаете явное значение где-то в иерархии родительской модели ссылки. В этом случае вы не можете симулировать модель непосредственно. Когда значение пустое, вы должны предоставить Data Type и Dimensions для объекта. Несмотря на то, что вы указали пустое значение, Simulink все еще синтезирует Value при помощи одного из следующих:

  • Max.

  • Min, если вы не указали Max.

  • 1, если вы не указали Min или Max.

См. «Параметризация Образцов переиспользуемой ссылочной Модели».

Можно также использовать MATLAB® синтаксис для задания значения.

Пример выраженияОписание
15.23

Задает скалярное значение

[3 4; 9 8]

Задает матрицу

3+2i

Задает комплексное число

struct('A',20,'B',5)

Задает структуру с двумя полями, A и B, со значениями двойной точности 20 и 5.

Организуйте параметры блоков в структуры (см. «Организация определений параметров связанных блоков в структурах») или инициализируйте сигнальные элементы в шине (см. «Задание начальных условий для элементов шины»).

slexpr('myVar + myOtherVar')Задает выражение myVar + myOtherVar где myVar и myOtherVar являются другими переменным MATLAB или объектами параметра. Simulink сохраняет эту математическую связь между объектом и переменными.

Как использовать Simulink.Parameter объект, чтобы сохранить значение конкретного типа числовых данных, задайте идеальное значение с Value свойство и управлять типом с помощью DataType свойство.

Если вы задаете Value свойство при помощи типизированного выражения, такого как single(32.5), а DataType свойство изменяется в соответствии с новым типом. Лучшая практика состоит в том, чтобы использовать выражение, которое не вводится, чтобы избежать накопления числовой ошибки через повторные квантования или насыщение типа данных, особенно для типов данных с фиксированной точкой.

Пример: 3.15

Пример: 1.2 + 3.2i

Пример: true

Пример: myEnumType.myEnumValue

Пример: struct('field1',15,'field2',7.32)

Пример: slexpr('myVar + myOtherVar')

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | struct | fi | enum
Поддержка комплексного числа: Да

Примеры

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

  1. В командной строке создайте Simulink.Parameter объект.

    myParam = Simulink.Parameter;
    

  2. Присвойте числовое значение Value свойство.

    myParam.Value = 15.23;

  3. Задайте минимальное и максимальное значения, которые может взять параметр со Min и Max свойства.

    myParam.Min = 10.11;
    myParam.Max = 25.27;

  4. Откройте новую модель Simulink. Добавьте блок Gain и установите его параметр Gain равным myParam. Во время симуляции параметр Gain использует значение 15.23.

Изменение значения, сохраненного объектом параметра

  1. В командной строке создайте Simulink.Parameter объект, который хранит значение 2.52.

    myParam = Simulink.Parameter(2.52);

  2. Измените значение путем доступа к Value свойство объекта. Этот метод сохраняет значения других свойств объекта.

    myParam.Value = 1.13;

Создайте объект параметра с определенным типом числовых данных

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

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

  1. В командной строке MATLAB создайте Simulink.Parameter объект, который хранит значение 18.25.

    myParam = Simulink.Parameter(18.25);

    Выражение 18.25 возвращает число 18.25 с типом данных с двойной точностью и плавающей точностью double. The Value свойство сохраняет номер 18.25 с двойной точностью.

  2. Используйте DataType свойство для задания типа данных с одной точностью single.

    myParam.DataType = 'single';

    Когда вы моделируете или генерируете код, объект приводит значение Value свойство, 18.25, к типу данных, заданному DataType свойство, single.

Установите значение параметров в математическое выражение

В этом примере показано, как задать значение объекта параметра, myParam, на сумму двух других переменных, myVar и myOtherVar. С помощью этого метода, когда вы изменяете значения независимых переменных, Simulink немедленно вычисляет новое значение объекта параметра.

  1. Создайте две независимые переменные.

    myVar = 5.2;
    myOtherVar = 9.8;

  2. Создайте объект параметра.

    myParam = Simulink.Parameter;

  3. Установите значение объекта параметра в выражение myVar + myOtherVar.

    myParam.Value = slexpr('myVar + myOtherVar')

    Когда вы моделируете или генерируете код, выражение вычисляется как 15.

Представлено до R2006a