Введение в различные средства управления

Компоненты Simulink® модель, которые содержат варианты, активирована или деактивирована на основе варианта, который вы выбираете.

Каждый вариант в вашей модели сопоставлен с variant control. Различные средства управления определяют, какой вариант активен. Путем изменения значения различного управления можно переключить активный вариант.

В то время как каждый вариант сопоставлен с различным управлением, только одно различное управление может оценить к true. Когда различное управление оценивает к true, Simulink активирует вариант, который соответствует тому различному управлению.

Можно задать различные средства управления типа expressionМетка или sim codegen switching для моделирования варианта блокируется и различные параметры.

Различный режим управления

Можно задать параметр Variant control mode как:

Переключитесь между выбором Используя выражения условия в различных блоках и различных параметрах

В expression режим, Simulink выбирает активный вариант на основе оценки различных условий. Когда выражение условия оценивает к true, соответствующий вариант становится активным. Когда выражение условия оценивает к false, соответствующий вариант становится неактивным.

Можно использовать expression тип различных средств управления в различных блоках и в различных параметрах.

  • Задавать различные выражения условия в различных блоках:

    • Щелкните правой кнопкой по значку по различному блоку, выберите Block Parameters, и затем задайте различное выражение условия в параметре Variant control expression диалогового окна параметров блоков.

       Различный режим управления: выражение

    • Программно, при помощи этой команды:

      set_param('set_param('choiceName', 'VariantControl', 'A == 1')
      где choiceName является полным путем варианта, и A == 1 является выражением, сопоставленным с вариантом.

  • Чтобы задать различные выражения условия в различном параметре, используйте Simulink.VariantVariable объект. Нос больше информации, смотрите, Создают Простую Различную Модель Параметра.

Различные средства управления могут быть:

Здесь, A и B операнды, названные как variant control variables. +, ==, и && операторы в выражении условия. Выражение условия может содержать одну или несколько таких различных контрольных переменных и операторов. Для получения информации о поддерживаемых типах и месте хранения различных контрольных переменных, смотрите Типы Различных Контрольных переменных (Операнды) в Различных Выражениях условия и Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия. Для получения информации об операторах смотрите Операторы в Различных Выражениях условия.

Примечание

Можно симулировать и сгенерировать код из модели, содержащей различный блок с набором Variant control mode к expression режим.

Типы различных контрольных переменных (операнды) в различных выражениях условия

В expression режим, можно задать различные контрольные переменные как любой из этих типов — из опций, чтобы использовать при прототипировании для опций, требуемых для генерации кода из модели.

СпецификацияЦельПример
Simulink.VariantControlСопоставьте различное время активацииA == 1, где A Simulink.VariantControl объект. Смотрите Различные Объекты Контрольных переменных Сопоставить Время Активации в Различных Блоках и Скалярных значениях для Быстрого прототипирования Различных Параметров.
Скалярная переменнаяБыстрое прототипирование

A == 1, где A скалярная переменная. Смотрите Скалярные Переменные для Быстрого прототипирования в Различных Блоках.

Примечание

Скалярные переменные как различные контрольные переменные не поддерживаются в различных параметрах.

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')
    где blockName является именем различного блока, и 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 решает, что активный выбор в компиляции модели подготавливает, и генерирует код только для выбора. Смотрите, Активируйте Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.

Сравните различные типы различных режимов управления

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

Различный режим управленияВозможности

expression— Simulink выбирает активный вариант на основе оценки различных условий. Когда выражение условия оценивает к true, соответствующий вариант становится активным. Когда выражение условия оценивает к false, соответствующий вариант становится неактивным.

Используйте expression режим к:

label— Simulink выбирает активный вариант на основе имени варианта. Различное управление является строкой и не требует, чтобы вы создали переменную в любой рабочей области.

Используйте label режим к:

  • Только симулируйте модель. Никакое требование, чтобы сгенерировать код из модели.

  • Управляйте активным выбором, не создавая переменных рабочей области.

sim codegen switching— Когда вы симулируете (Нормальный, Акселератор, Быстрый Акселератор) модель, затем Simulink автоматически выбирает sim перейдите как активный выбор. Точно так же, когда вы делаете программное обеспечение в цикле (SIL), симуляция Процессора в цикле (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает codegen ветвь.

Используйте sim codegen switching переключение режима к:

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

  • Сгенерируйте код только для активного выбора в модели.

Различные времена активации для различных различных режимов управления

Доступность различных различных времен активации зависит от типа Variant control mode, который вы задаете. Различное время активации определяет время, когда Simulink устанавливает активный выбор. Различное время активации также определяет который изменчивость включать в сгенерированный код. Для получения дополнительной информации о различных временах активации смотрите, Активируют Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.

Эта таблица объясняет различное время активации, поддержанное каждым различным режимом управления.

Variant activation time
Variant control mode update diagramupdate diagram analyze all choicescode compilestartup
expression
labelxxx
sim codegen switchingxx

Подходы для определения различных контрольных переменных

Этот раздел объясняет, как использовать различные типы различных контрольных переменных в различных выражениях условия.

Различные контрольные переменные возражают, чтобы сопоставить время активации в различных блоках

Simulink.VariantControl объект позволяет вам сопоставить различное время активации с различной контрольной переменной. Можно задать Simulink.VariantControl тип контрольных переменных в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.

Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller и NonLinear Controller подсистемы.

  1. В диалоговом окне параметров блоков блока Variant Subsystem задайте различные средства управления, V ==1 и V==2.

  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 подсистемы.

  1. В диалоговом окне параметров блоков блока Variant Subsystem задайте различное управление в их самой простой форме как скалярные переменные, V ==1 и V==2.

  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 подсистема.

  1. В базовом рабочем пространстве задайте 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.

  2. Задайте Simulink.Parameter возразите как различная контрольная переменная в диалоговом окне параметров блоков блока Variant Subsystem, и затем симулируйте модель. В процессе моделирования, Linear Controller вариант становится активным.

Перечислимые типы, чтобы улучшить удобочитаемость кода различных блоков

Используйте перечислимые типы, чтобы дать понятные имена целым числам, используемым в качестве различных значений управления. Вы можете контрольные переменные варианта define перечислимых типов в местах хранения, как перечислено в Местах хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.

Рассмотрите модель, которая содержит блок Variant Subsystem с двумя вариантами, Linear Controller и NonLinear Controller подсистемы.

  1. В базовом рабочем пространстве задайте классы, которые сопоставляют перечисляемые значения с понятными именами.

    Здесь, sldemo_mrv_CONTROLLER_TYPE основанный на целом числе класс перечисления, который выведен из встроенного типа данных, int32. Класс имеет две перечислимых величины, Linear и NonLinear. Эти перечисляемые значения имеют базовые целочисленные значения 0 и 1.

    classdef sldemo_mrv_CONTROLLER_TYPE < Simulink.IntEnumType
            enumeration
            Linear (1)
            NonLinear (2)
            end
    end
    
  2. Задайте имена как различные контрольные переменные в диалоговом окне параметров блоков блока Variant Subsystem.

  3. Задайте 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 подсистема.

  1. В базовом рабочем пространстве инкапсулируйте различные выражения управления как Simulink.Variant объекты.

    Linear=Simulink.Variant('V==1');
    NonLinear=Simulink.Variant('V==2');
  2. Задайте Simulink.Variant объекты как различные контрольные переменные в диалоговом окне параметров блоков блока Variant Subsystem.

    Параметр Condition (read-only) отображает инкапсулированные различные условия.

  3. Задайте 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;

Объекты Simulink.Parameter для генерации кода различных параметров

Если вы намереваетесь сгенерировать код для модели, содержащей различные значения параметров, задайте различные контрольные переменные как переменные 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 тип различных контрольных переменных в маске или рабочем пространстве модели не поддерживается. Для получения дополнительной информации о местах хранения для различных контрольных переменных смотрите Места хранения для Различных Контрольных переменных (Операнды) в Различных Выражениях условия.

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

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

Связанные примеры

Больше о