Компоненты Simulink® модель, которые содержат варианты, активирована или деактивирована на основе варианта, который вы выбираете.
Каждый вариант в вашей модели сопоставлен с variant control. Различные средства управления определяют, какой вариант активен. Путем изменения значения различного управления можно переключить активный вариант.
В то время как каждый вариант сопоставлен с различным управлением, только одно различное управление может оценить к true
. Когда различное управление оценивает к true
, Simulink активирует вариант, который соответствует тому различному управлению.
Можно задать различные средства управления типа expression
Метка
или sim codegen switching
для моделирования варианта блокируется и различные параметры.
Можно задать параметр Variant control mode как:
expression
— В expression
режим, Simulink выбирает активный вариант на основе оценки различных условий. Когда выражение условия оценивает к true
, соответствующий вариант становится активным. Когда выражение условия оценивает к false
, соответствующий вариант становится неактивным. Смотрите Переключатель Между Выбором Используя Выражения условия в Различных Блоках и Различных Параметрах.
label
— В label
режим, Simulink выбирает активный вариант на основе имени варианта. Различное управление является строкой и не требует, чтобы вы создали переменную в любых рабочих областях. Смотрите Переключатель Между Выбором Используя Метки в Различных Блоках.
sim codegen switching
— Чтобы автоматически переключиться между вариантами для симуляции и рабочих процессов генерации кода, не создавая переменной рабочей области, используйте sim codegen switching
режим. Когда вы симулируете модель, Simulink автоматически выбирает sim
перейдите как активный выбор. Точно так же, когда вы делаете программное обеспечение в цикле (SIL) или симуляция Процессора в цикле (PIL), генерируете код или используете режим external mode, Simulink автоматически выбирает codegen
ветвь. Смотрите Переключатель Между Выбором Для Рабочих процессов Симуляции И Генерации кода в Различных Блоках.
В expression
режим, Simulink выбирает активный вариант на основе оценки различных условий. Когда выражение условия оценивает к true
, соответствующий вариант становится активным. Когда выражение условия оценивает к false
, соответствующий вариант становится неактивным.
Можно использовать expression
тип различных средств управления в различных блоках и в различных параметрах.
Задавать различные выражения условия в различных блоках:
Щелкните правой кнопкой по значку по различному блоку, выберите Block Parameters, и затем задайте различное выражение условия в параметре Variant control expression диалогового окна параметров блоков.
Программно, при помощи этой команды:
set_param('set_param('choiceName', 'VariantControl', 'A == 1')
Чтобы задать различные выражения условия в различном параметре, используйте Simulink.VariantVariable
объект. Нос больше информации, смотрите, Создают Простую Различную Модель Параметра.
Различные средства управления могут быть:
Выражение булева условия для быстрого прототипирования. Например, A + B
, A == B
A, B
, и так далее.
Simulink.Variant
объект, который содержит выражение условия для повторного использования условия. См. Объекты Simulink.Variant для Различного Повторного использования Условия в Различных Блоках и Объекты Simulink.Variant для Различного Повторного использования Условия Различных Параметров.
Вариант по умолчанию, если ни один из выбора не оценивает к true
.
Здесь, A
и B
операнды, названные как variant control variables. +
, ==
, и &&
операторы в выражении условия. Выражение условия может содержать одну или несколько таких различных контрольных переменных и операторов. Для получения информации о поддерживаемых типах и месте хранения различных контрольных переменных, смотрите Типы Различных Контрольных переменных (Операнды) в Различных Выражениях условия и Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия. Для получения информации об операторах смотрите Операторы в Различных Выражениях условия.
Примечание
Можно симулировать и сгенерировать код из модели, содержащей различный блок с набором Variant control mode к expression
режим.
В expression
режим, можно задать различные контрольные переменные как любой из этих типов — из опций, чтобы использовать при прототипировании для опций, требуемых для генерации кода из модели.
Спецификация | Цель | Пример |
---|---|---|
Simulink.VariantControl | Сопоставьте различное время активации | A == 1 , где A Simulink.VariantControl объект. Смотрите Различные Объекты Контрольных переменных Сопоставить Время Активации в Различных Блоках и Скалярных значениях для Быстрого прототипирования Различных Параметров. |
Скалярная переменная | Быстрое прототипирование |
Примечание Скалярные переменные как различные контрольные переменные не поддерживаются в различных параметрах.
|
Simulink.Parameter объект | Сгенерируйте условные выражения препроцессора для генерации кода | Vssmode == 1 , где Vssmode Simulink.Parameter объект. Смотрите, Объекты Simulink.Parameter с Целым числом для Генерации кода в Различных Блоках и Объекты Simulink.Parameter для Генерации кода Различных Параметров. |
Перечисления Simulink | Удобочитаемость улучшенного кода, потому что значения условия представлены как понятные имена вместо целых чисел | LEVEL == Level.Advanced , где Level основанный на целом числе класс перечисления и Advanced перечисляемое значение. Смотрите, Перечислимые типы, Чтобы Улучшить Удобочитаемость Кода Различных Блоков и Перечислимых типов, чтобы Улучшить Удобочитаемость Кода Различных Параметров. |
Simulink.Variant объект | Условия варианта повторного использования | LinearController == 1 , где LinearController Simulink.Variant объект, который инкапсулирует выражение условия FUEL==2 && EMIS==1 . Смотрите, объекты Simulink.Variant для различного повторного использования условия в различных блоках и объекты Simulink.Variant для различного повторного использования условия различных параметров. |
Можно задать различные контрольные переменные в различных местах хранения на основе требования.
Примечание
Все различные контрольные переменные в различном блоке или в различном параметре должны произойти из того же места хранения.
Контрольные переменные варианта Define:
\in | К | Поддерживаемые типы различных контрольных переменных (См. Типы Различных Контрольных переменных (Операнды) в Различных Выражениях условия), | Для получения дополнительной информации |
---|---|---|---|
Базовое рабочее пространство | Сохраните переменные, в то время как вы экспериментируете с временными моделями | Скалярные переменные, Simulink.VariantControl , Simulink.Variant , Simulink.Parameter , и перечислимый тип | Временные данные: базовое рабочее пространство |
Рабочая область маски | Постоянно храните данные, которые локальны для маски блока. | Скалярные переменные, Simulink.VariantControl , и перечислимый тип | Подходы, чтобы управлять активным вариантом различного блока Используя маску или рабочее пространство модели |
Рабочее пространство модели | Постоянно храните данные, которые локальны для модели | Скалярные переменные, Simulink.VariantControl , и перечислимый тип | Подходы, чтобы управлять активным вариантом различного блока Используя маску или рабочее пространство модели |
Словарь данных | Постоянно храните глобальные данные, осуществляйте обмен данными между моделями и отследите изменения, внесенные в данные. | Скалярные переменные, Simulink.VariantControl , Simulink.Variant , Simulink.Parameter , и перечислимый тип | Что такое словарь данных? |
Для возможностей и преимуществ каждого места хранения, смотрите, Определяют, Где Сохранить Переменные и Объекты для Моделей Simulink
Различные выражения условия могут содержать MATLAB® операторы, если выражение оценивает к булеву значению.
expression
режим поддерживает update diagram
, update diagram analyze all choices
, code compile
, и startup
времена активации. Для получения дополнительной информации о различных временах активации смотрите, Активируют Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.
Simulink определяет компоненты модели, которые активны в процессе моделирования процессом variant condition propagation. Этот процесс оценивает различные средства управления, заданные на различных блоках, и автоматически распространяет различные условия с соединяющимися блоками. Различные условия могут распространить через сигнальные линии, шины и вызовы функции достигнуть других блоков в модели. Процесс деактивировал компоненты модели, сопоставленные с неактивным выбором, и они не участвуют в симуляции. Можно остановить распространение условия в области варианта define в модели.
Можно использовать Различную Легенду Условий, чтобы визуализировать распространенные различные условия, которые активируют каждый вариант. Simulink аннотирует компоненты модели, если существуют различные условия на них, и Различная Легенда Условий отображает условие, которое соответствует каждой аннотации.
Для получения дополнительной информации см. Различный Обзор Распространения Условия.
В label
режим, Simulink выбирает активный вариант на основе имени варианта. Различным управлением является string
и не требует, чтобы вы создали переменную в любых рабочих областях.
Чтобы задать метки для выбора в различных блоках, щелкните правой кнопкой по значку по различному блоку, выберите Block Parameters, и затем задайте метки в параметре Variant control label диалогового окна параметров блоков.
Различный режим управления: метка
Примечание
Вы не можете сопоставить label
тип различного управления различным параметром.
В label
режим, время активации различного блока установлено в update diagram
по умолчанию. Другими словами, когда вы симулируете модель, Simulink решает, что активный выбор в компиляции модели подготавливает, и генерирует код только для выбора. Смотрите, Активируйте Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.
Можно только симулировать модель, содержащую различный блок с набором Variant control mode к label
режим. Генерация кода не поддерживается.
Можно следовать за любым из этих подходов, чтобы установить активный выбор в label
режим:
Задайте имя для каждого варианта в параметре Variant control label различного диалогового окна блока. Все имена, которые вы задаете, перечислены в выпадающем Label mode active choice. Метка, которую вы выбираете из списка, становится активным выбором.
Щелкните правой кнопкой по значку по различному блоку и выберите Label Mode Active Choice.
Из рабочей области маски различного блока с помощью кода инициализации. Активный выбор, который вы задаете в коде инициализации маски, заменяет активный выбор, вы задаете использование выпадающего Label mode active choice или пункт меню Label Mode Active Choice. Для получения дополнительной информации смотрите Маску Различная Подсистема.
Программно, при помощи этой команды:
set_param(blockName,'LabelModeActiveChoice', 'variantChoiceLabel')
Чтобы автоматически переключиться между выбором для симуляции и рабочих процессов генерации кода, не создавая переменной рабочей области, используйте sim codegen switching
различный режим управления.
Чтобы задать симуляцию и ветви генерации кода для вариантов, щелкните правой кнопкой по значку по различному блоку, выберите Block Parameters, и затем задайте (sim)
и (codegen)
ключевые слова в параметре Variant control switch диалогового окна параметров блоков.
Когда вы симулируете (Нормальный, Акселератор, Быстрый Акселератор) модель, Simulink автоматически выбирает (sim)
перейдите как активный выбор. Точно так же, когда вы делаете программное обеспечение в цикле (SIL), симуляция Процессора в цикле (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает (codegen)
ветвь. Код сгенерирован только для активного выбора. Неактивный выбор не включен в сгенерированный код. В этом режиме у вас может самое большее быть только два варианта в различном блоке.
Различный режим управления: sim codegen переключение
Примечание
Вы не можете сопоставить sim codegen switching
тип различного управления различным параметром.
В sim codegen switching
режим, только update diagram
и update diagram analyze all choices
времена активации поддерживаются. Другими словами, когда вы симулируете или генерируете код из модели, Simulink решает, что активный выбор в компиляции модели подготавливает, и генерирует код только для выбора. Смотрите, Активируйте Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.
Эта таблица объясняет возможности различных различных режимов управления помочь вам выбрать тот, который угождает вашему требованию.
Различный режим управления | Возможности |
---|---|
| Используйте
|
| Используйте
|
| Используйте
|
Доступность различных различных времен активации зависит от типа Variant control mode, который вы задаете. Различное время активации определяет время, когда Simulink устанавливает активный выбор. Различное время активации также определяет который изменчивость включать в сгенерированный код. Для получения дополнительной информации о различных временах активации смотрите, Активируют Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.
Эта таблица объясняет различное время активации, поддержанное каждым различным режимом управления.
Variant activation time | ||||
---|---|---|---|---|
Variant control mode | update diagram | update diagram analyze all choices | code compile | startup |
expression | ✓ | ✓ | ✓ | ✓ |
label | ✓ | x | x | x |
sim codegen switching | ✓ | ✓ | x | x |
Этот раздел объясняет, как использовать различные типы различных контрольных переменных в различных выражениях условия.
Simulink.VariantControl
объект позволяет вам сопоставить различное время активации с различной контрольной переменной. Можно задать Simulink.VariantControl
тип контрольных переменных в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller
и NonLinear Controller
подсистемы.
В диалоговом окне параметров блоков блока Variant Subsystem задайте различные средства управления, V ==1
и V==2
.
В базовом рабочем пространстве задайте различный объект контрольной переменной, V
, использование Simulink.VariantControl
, установите его значение к 1
, и затем симулируйте модель. В процессе моделирования, Linear Controller
вариант становится активным.
V = Simulink.VariantControl('Value', 1, ActivationTime, 'update diagram analyze all choices')
Примечание
Variant activation time, который вы задаете в диалоговом окне параметров блоков, заменяет ActivationTime
то, что вы задаете в Simulink.VariantControl
объект.
Точно так же, если вы изменяете значение V
к 2
, Nonlinear Controller
вариант становится активным.
V.Value = 2;
Скалярные контрольные переменные варианта MATLAB позволяют вам вариантам быстрого прототипирования, когда вы все еще создаете свою модель. Они помогают вам фокусироваться больше на создании ваших вариантов, чем на разработке выражений, которые активируют тот выбор. Можно задать скалярные контрольные переменные в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller
и NonLinear Controller
подсистемы.
В диалоговом окне параметров блоков блока Variant Subsystem задайте различное управление в их самой простой форме как скалярные переменные, V ==1
и V==2
.
В базовом рабочем пространстве задайте различную контрольную переменную, V
, установите его значение к 1
, и затем симулируйте модель. В процессе моделирования, Linear Controller
вариант становится активным.
V = 1;
Точно так же, если вы изменяете значение V
к 2
, Nonlinear Controller
вариант становится активным.
V = 2;
Simulink.Parameter
Объекты с целым числом для генерации кода в различных блокахЕсли вы намереваетесь сгенерировать код для модели, содержащей варианты, задайте различные контрольные переменные как Simulink.Parameter
объекты. Simulink.Parameter
объекты позволяют вам задавать другие атрибуты (такие как тип данных), которые требуются для генерации кода.
Примечание
Можно задать различную контрольную переменную типа Simulink.Parameter
только в базовом рабочем пространстве или в словаре данных. Определение различной контрольной переменной типа Simulink.Parameter
в маске или рабочем пространстве модели не поддерживается. Для получения дополнительной информации о местах хранения для различных контрольных переменных смотрите Места хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Simulink.Parameter
объекты в структурах и которые имеют типы данных кроме Simulink.Bus
объекты не поддерживаются.
Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller
и NonLinear Controller
подсистема.
В базовом рабочем пространстве задайте Simulink.Parameter
объект, VssMode
.
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
или ImportedDefine
с заданным заголовочным файлом
CompilerFlag
SystemConstant (AUTOSAR)
Ваш собственный класс памяти, который задает данные как макрос
Для получения дополнительной информации об этих классах памяти, смотрите, Выбирают Storage Class for Controlling Data Representation in Generated Code (Simulink Coder).
Можно также преобразовать скалярную различную контрольную переменную в Simulink.Parameter
объект. Для получения дополнительной информации смотрите, Преобразуют Различные Контрольные переменные в Объекты Simulink.Parameter.
Задайте Simulink.Parameter
возразите как различная контрольная переменная в диалоговом окне параметров блоков блока Variant Subsystem, и затем симулируйте модель. В процессе моделирования, Linear Controller
вариант становится активным.
Используйте перечислимые типы, чтобы дать понятные имена целым числам, используемым в качестве различных значений управления. Вы можете контрольные переменные варианта define перечислимых типов в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller
и NonLinear Controller
подсистемы.
В базовом рабочем пространстве задайте классы, которые сопоставляют перечисляемые значения с понятными именами.
Здесь, sldemo_mrv_CONTROLLER_TYPE
основанный на целом числе класс перечисления, который выведен из встроенного типа данных, int32
. Класс имеет две перечислимых величины, Linear
и NonLinear
. Эти перечисляемые значения имеют базовые целочисленные значения 0
и 1
.
classdef sldemo_mrv_CONTROLLER_TYPE < Simulink.IntEnumType enumeration Linear (1) NonLinear (2) end end
Задайте имена как различные контрольные переменные в диалоговом окне параметров блоков блока Variant Subsystem.
Задайте Simulink.VariantControl
объект, E_Ctrl
в базовом рабочем пространстве задайте его значение как 1
и затем симулируйте модель. В процессе моделирования, Linear Controller
вариант становится активным.
E_Ctrl.Value=1
Simulink.Variant
Объекты для различного повторного использования условия в различных блокахПосле идентификации вариантов, которых требует ваша модель, можно создать комплексные различные условия управлять активацией вариантов путем определения различных условий как Simulink.Variant
объекты. Simulink.Variant
объекты позволяют вам снова использовать общие различные условия через модели и помочь вам инкапсулировать комплексные различные выражения условия.
Можно задать весь различное выражение условия или только различная контрольная переменная в выражении условия типа Simulink.Variant
.
Примечание
Можно задать различную контрольную переменную типа Simulink.Variant
только в базовом рабочем пространстве или в словаре данных. Определение различной контрольной переменной типа Simulink.Variant
в маске или рабочем пространстве модели не поддерживается. Для получения дополнительной информации о местах хранения для различных контрольных переменных смотрите Места хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
Simulink.Variant
в структурах не поддерживаются.
Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller
и NonLinear Controller
подсистема.
В базовом рабочем пространстве инкапсулируйте различные выражения управления как Simulink.Variant
объекты.
Linear=Simulink.Variant('V==1'); NonLinear=Simulink.Variant('V==2');
Задайте Simulink.Variant
объекты как различные контрольные переменные в диалоговом окне параметров блоков блока Variant Subsystem.
Параметр Condition (read-only) отображает инкапсулированные различные условия.
Задайте Simulink.VariantControl
объект, V
в базовом рабочем пространстве задайте его значение как 1
и затем симулируйте модель. В процессе моделирования, Linear Controller
вариант становится активным.
V.Value = 1;
Используя этот подход, можно разработать комплексные различные выражения условия, которые являются допускающими повторное использование.
Переменные 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'
Используйте перечислимые типы, чтобы дать понятные имена целым числам, используемым в качестве различных значений управления.
Вы можете контрольные переменные варианта define перечислимых типов в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.
В Редакторе MATLAB® задайте классы, которые сопоставляют перечисляемые значения с понятными именами.
Здесь, EngType
основанный на целом числе класс перечисления, который выведен из встроенного типа данных, int32
. Класс имеет две перечислимых величины, Small
и Big
. Эти перечисляемые значения имеют базовые целочисленные значения 1
и 2
.
type EngType.m
classdef EngType < Simulink.IntEnumType enumeration Small (1) Big (2) end end
Задайте имена как варианты в Simulink.VariantVariable
объект.
vpObj = Simulink.VariantVariable('Choices', {'VCtrl == EngType.Small',3.5,'VCtrl == EngType.Big',8.5})
vpObj = VariantVariable with 2 choices: Condition Value ______________________ _____ VCtrl == EngType.Big 8.5000 VCtrl == EngType.Small 3.5000 Specification: '' Use getChoice, setChoice, addChoice, removeChoice to access, modify, add or remove choices
Активируйте одно из различных значений путем определения контрольной переменной VCtrl
и устанавливание его значения к EngType.Small
в Simulink.VariantControl
объект. Это условие активирует значение 3.5
и присвоения это значение к vpObj
.
Примечание: Для различной контрольной переменной возражают с 'startup'
время активации, задавая значение перечислимого типа не поддерживается.
VCtrl = Simulink.VariantControl('Value',EngType.Small,'ActivationTime','code compile')
VCtrl = VariantControl with properties: Value: Small 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'
Используя этот подход, можно разработать комплексные различные выражения условия, которые являются допускающими повторное использование.