Пакет: 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}
Specification
— Свойства различного объекта параметраSimulink.Parameter
имя объектаСвойства различного объекта параметра, такие как тип данных, размерности, класс памяти, и так далее в виде Simulink.Parameter
объект. Класс памяти по умолчанию Simulink.Parameter
объектом является Auto
. Если вы задаете класс памяти как Auto
, значение объекта встроено к литеральному значению в сгенерированном коде. Если вы задаете класс памяти объекта что-нибудь кроме Auto
, объект представлен как настраиваемые параметры с помощью символьных имен в сгенерированном коде. Для получения дополнительной информации смотрите, Выбирают Storage Class for Controlling Data Representation in Generated Code (Simulink Coder).
Примечание
Если различный объект параметра сопоставлен к различному объекту управления, имеющему startup
время активации, затем задающее класс памяти различного объекта параметра к любому из них, не поддерживается:
Классы памяти, такие как Define
это генерирует макросы в коде.
Классы памяти, такие как Const
это генерирует постоянные квалифицированные переменные в коде.
Пример: 'Specification', 'Pspec'
Choices
— Различные условия и значенияРазличные условия и значения в виде struct. В процессе моделирования, когда различное условие оценивает к true
, его присваиваемое значение становится активным. Когда различное условие оценивает к false
, его присваиваемое значение становится неактивным. Никакие два значения того же различного параметра не должны быть сопоставлены с тем же различным условием.
Можно задать различное условие как булев MATLAB® выражения, которые содержат один или несколько операндов и операторов. Смотрите Различные Средства управления в Различных Параметрах.
Пример: 'Choices', {'V==1', 4.5, 'V==2', 9.5}
addChoice | Добавьте выбор в различный объект параметра |
getChoice | Возвратите выбор различного объекта параметра |
setChoice | Измените существующий выбор различного объекта параметра |
removeChoice | Удалите выбор из различного объекта параметра |
Эти методы специализируют стандартные операторы MATLAB и функции для объектов в этом классе.
bitcmp | Выполняет поразрядное дополнение на входе. |
eq | Выдерживает сравнение, если входные параметры равны. |
gt | Выдерживает сравнение, если первый вход больше второго входа. |
mrdivide | Делит первый вход на второй вход. |
or | Выполняет логический OR на входных параметрах. |
uminus | Инвертирует вход. |
bitor | Выполняет побитовое ИЛИ на входных параметрах. |
ge | Выдерживает сравнение, если первый вход больше или равен второму входу. |
le | Выдерживает сравнение, если первый вход меньше чем или равен второму входу. |
mtimes | Умножает входы. |
plus | Добавляют входные параметры. |
uplus | Возвращает значение входа. |
and | Выполняет логический AND на входных параметрах. |
bitshift | Переключите биты конкретным количеством мест. |
lt | Выдерживает сравнение, если первый вход меньше второго входа. |
ne | Выдерживает сравнение, если входные параметры не равны. |
bitand | Выполняет побитовое И на входных параметрах. |
bitxor | Выполняет побитовое исключающее ИЛИ на входных параметрах. |
minus | Вычитает второй вход из первого входа. |
not | Возвращается логический НЕ входа. |
Переменные Scalar 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
объекты позволяют вам задавать другие атрибуты (такие как тип данных), которые требуются для генерации кода.
Примечание:
Можно задать различную контрольную переменную типа Simulink.Parameter
только в базовом рабочем пространстве или в словаре данных. Определение Simulink.Parameter
тип различных контрольных переменных в маске или рабочем пространстве модели не поддерживается. Для получения дополнительной информации о местах хранения для различных контрольных переменных смотрите Места хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Simulink.Parameter
объекты в структурах и которые имеют типы данных кроме Simulink.Bus
объекты не поддерживаются.
В редакторе 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
объекты позволяют вам снова использовать общие различные условия через модели и помочь вам инкапсулировать комплексные различные выражения условия.
Примечание:
Можно задать различную контрольную переменную типа Simulink.Variant
только в базовом рабочем пространстве или в словаре данных. Определение 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'
Используя этот подход, можно разработать комплексные различные выражения условия, которые являются допускающими повторное использование.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.