Можно использовать условно выполняемые системы (порты управления), такие как Enable, Trigger, Reset и Подсистемы Function-Call в блоке Variant Subsystem. Когда параметр Variant activation time устанавливается на code compile
в диалоговом окне Block Parameters соединении портов управления в блоке Variant Subsystem, когда не поддерживается вариант. Кроме того, все типы порта управления должны иметь те же имена. Для получения дополнительной информации об условно выполняемых системах см. Условно Выполняемый Обзор Подсистем.
Модель экспорта функций с различной подсистемой
Рассмотрите модель Variant, содержащую блок Variant Subsystem. Если вы используете систему Function-Call в качестве варианта для Linear
Блок Subsystem затем другой блок Subsystem (Nonlinear
) в Variant Subsystem блок должен также быть системой Function-Call. Кроме того, порты управления в Linear
и Nonlinear
блоки и соответствующий блок inport должны иметь то же имя (fcn
).
В сгенерированном коде код внутри fcn определение охраняют условные выражения препроцессора C в экспорте функций.
fcn() { #if VSSMODE==0 // code for Linear choice ....... #endif #if VSSMODE==1 // code for Nonlinear choice ....... #endif
У вас может также быть подобный шаблон моделирования с многоточечной функцией записи использование блока Model. Пример следующие:
В вышеупомянутом примере, fcln1
, fcln2
, и fcln3
направляются через Различную Подсистему с помощью блоков Model в качестве вариантов.
Эти условия не поддерживаются при использовании условно выполняемых систем в блоке Variant Subsystem как вариант:
Порты Action как Варианты
Варианты, содержащие порт Iterator с, генерируют условный набор препроцессора к ON
Модели с Initialize, Reset, Terminate и функциями Simulink
Примечание
Инициализируйте и порты события Terminate являются всегда безусловными, потому что они управляют и значением по умолчанию модели и специфичный для блока, инициализируют и отключают события модели, на которую ссылаются. Если вы задаете Инициализировать функциональный блок в модели, на которую ссылаются, это соответствует явному, инициализируют событие.
Различная подсистема с включает подсистему как выбор
Рассмотрите модель Variant, содержащую блок Variant Subsystem. Если вы используете Enable Subsystem в качестве варианта для Linear
Блок Subsystem затем другой блок Subsystem (Nonlinear
) в Variant Subsystem блоком должен также быть Enable Subsystem.
Эта модель симулирует и генерирует код на основе VSSMODE
значение.
Отрывок сгенерированного кода как показано ниже.
step() { #if VSSMODE==0 // code for Linear choice ....... #elif VSSMODE==1 // code for Nonlinear choice ....... #endif