exponenta event banner

Класс переменной Simulink.VariantVariantVariable

Пакет: Simulink

Создание объекта параметра варианта

Описание

Simulink.VariantVariable создает объект параметра исполнения. Для каждого объекта можно задать несколько значений. Можно также задать такие свойства, как размер, тип данных и т. д. Каждое значение объекта связано с выражением условия исполнения. Задайте значения параметров и свойства в объекте, а затем создайте ссылку на объект из блока.

Перед созданием нового Simulink.VariantVariable объект, создайте Simulink.VariantControl объект, представляющий переменную управления исполнениями, которая будет использоваться в Simulink.VariantVariable объект.

Примечание

Объект параметра варианта можно создать только в базовом словаре или в словаре данных.

Создание

P= Simulink.VariantVariable создает пустой объект параметра варианта.

P= Simulink.VariantVariable(Name,Value)создает объект параметра варианта, как указано одним или несколькими Name,Value аргументы пары. С помощью этого синтаксиса можно задать несколько значений для объекта и связать каждое значение с выражением условия исполнения. Можно также указать другие свойства объекта, такие как типы данных, класс хранения, измерения и т. д.

Входные аргументы

развернуть все

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Specification', 'Pspec', 'Choices', {'V==1', 4.5, 'V==2', 9.5}

Свойства объекта параметра исполнения, такие как тип данных, измерения, класс хранения и т. д., указанные как Simulink.Parameter объект. Класс хранения по умолчанию для Simulink.Parameter объект - Auto. Если класс хранения указан как Autoзначение объекта встроено в значение литерала в сгенерированном коде. Если указан класс хранения объекта, то Autoобъект представляется в виде настраиваемых параметров с использованием символьных имен в сгенерированном коде. Дополнительные сведения см. в разделе Выбор класса хранения для управления представлением данных в сгенерированном коде (Simulink Coder).

Пример: 'Specification', 'Pspec'

Условия и значения вариантов, указанные как структура. Во время моделирования, когда условие исполнения вычисляется как true, связанное с ним значение становится активным. Когда условие исполнения вычисляется как false, связанное с ним значение становится неактивным. Два значения одного и того же параметра исполнения не должны быть связаны с одним и тем же условием исполнения.

Условие исполнения можно указать как логические выражения MATLAB ®, которые содержат один или несколько операндов и операторов. См. раздел Элементы управления исполнениями в параметрах исполнений .

Пример: 'Choices', {'V==1', 4.5, 'V==2', 9.5}

Методы

развернуть все

Примеры

свернуть все

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

В редакторе MATLAB укажите варианты в простейшей форме в качестве скалярных переменных в Simulink.VariantVariable объект.

vpObj = Simulink.VariantVariable('Choices',{'VCtrl==1', 1000, 'VCtrl==2', 2000})
vpObj = 
VariantVariable with 2 choices:

 Condition 	Value
__________	_____
VCtrl == 1	1000
VCtrl == 2	2000

Specification: ''

Use getChoice, setChoice, addChoice, removeChoice to access, modify, add or
remove choices

Активируйте одно из значений варианта путем определения управляющей переменной. VCtrl, и установка его значения 1 в Simulink.VariantControl объект. Это условие активирует значение 1000 и присваивает это значение vpObj.

VCtrl = Simulink.VariantControl('Value', 1, 'ActivationTime', 'update diagram')
VCtrl = 
  VariantControl with properties:

             Value: 1
    ActivationTime: 'update diagram'

При изменении значения VCtrl кому 2, Simulink ® устанавливает значение vpObj кому 2000.

VCtrl.Value = 2;

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

В редакторе MATLAB определите Simulink.Parameter объект.

VSSMODE = Simulink.Parameter;
VSSMODE.Value = 1;
VSSMODE.DataType = 'int32';
VSSMODE.CoderInfo.StorageClass = 'Custom';
VSSMODE.CoderInfo.CustomStorageClass = 'ImportedDefine';
VSSMODE.CoderInfo.CustomAttributes.HeaderFile ='rtwdemo_importedmacros.h';

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

  • Define or ImportedDefine с указанным заголовочным файлом

  • CompilerFlag

  • SystemConstant (AUTOSAR)

  • Собственный класс хранения, определяющий данные как макрос

Можно также преобразовать переменную управления скалярным вариантом в Simulink.Parameter объект. Дополнительные сведения см. в разделе Преобразование переменных управления исполнениями в объекты Simulink.Parameter.

Укажите объект как элемент управления исполнения с помощью Simulink.VariantVariable объект.

vpObj = Simulink.VariantVariable('Choices', {'VCtrl == 1',1000,'VCtrl == 2',2000});

Активировать одно из значений варианта путем определения управляющей переменной VCtrl и установка его значения VSSMODE в Simulink.VariantControl объект. Это условие активирует значение 1000 и присваивает это значение vpObj.

VCtrl = Simulink.VariantControl('Value',VSSMODE,'ActivationTime','code compile')
VCtrl = 
  VariantControl with properties:

             Value: [1x1 Simulink.Parameter]
    ActivationTime: 'code compile'

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

В редакторе MATLAB ® инкапсулируйте управляющие выражения исполнения какSimulink.Variant объекты.

LinearController=Simulink.Variant('VCtrl==1');
NonLinearController=Simulink.Variant('VCtrl==2');

Укажите Simulink.Variant объекты как элементы управления исполнениями в Simulink.VariantVariable объект.

vpObj = Simulink.VariantVariable('Choices',{'LinearController',1000,'NonLinearController',2000})
vpObj = 
VariantVariable with 2 choices:

     Condition     	Value
___________________	_____
LinearController   	1000
NonLinearController	2000

Specification: ''

Use getChoice, setChoice, addChoice, removeChoice to access, modify, add or
remove choices

Активируйте одно из значений варианта путем определения управляющей переменной. VCtrl, и установка его значения LinearController в Simulink.VariantControl объект. Это условие активирует значение 1000 и присваивает это значение vpObj.

VCtrl = Simulink.VariantControl('Value',1,'ActivationTime','update diagram')
VCtrl = 
  VariantControl with properties:

             Value: 1
    ActivationTime: 'update diagram'

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

Представлен в R2021a