Simulink.VariantVariable class

Пакет: Simulink

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

Описание

The 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'

Варианты условий и значений, заданные как struct. Во время симуляции, когда условие варианта вычисляется как 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 на 2Simulink ® устанавливает значение 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. Параметр Объекты .

Задайте объект как вариант управления с помощью 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