Вариантные системы с условными системами

Можно использовать условно выполняемые системы (порты управления), такие как Enable, Trigger, Reset и Подсистемы Function-Call в блоке Variant Subsystem. Когда флажок Analyze all choices during update diagram and generate preprocessor conditionals устанавливается в диалоговом окне 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

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

Рассмотрите модель 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

Похожие темы