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

Можно использовать условно выполняемые системы (порты управления) те, которые Включают, Триггер, Сброс и Подсистемы вызова функций в Различном блоке Subsystem. Когда флажок Analyze all choices during update diagram and generate preprocessor conditionals устанавливается в диалоговом окне Block Parameters, соединении портов управления в Различном блоке Subsystem, когда вариант не поддержан. Кроме того, все типы порта управления должны иметь те же имена. Для получения дополнительной информации об условно выполняемых системах см. Условно Выполняемый Обзор Подсистем.

Модель Export-Function с Различной Подсистемой

Рассмотрите модель Variant, содержащую Различный блок Subsystem. Если вы используете систему Вызова функции в качестве варианта для блока Subsystem Linear затем, другой блок Subsystem (Nonlinear) в Различной Подсистеме должен также быть системой Вызова функции. Кроме того, порты управления в Linear и блоках Nonlinear и соответствующем блоке импорта должны иметь то же имя (fcn).

В сгенерированном коде код внутри fcn определение охраняют условные выражения препроцессора C в экспорте функций.

fcn() {
#if VSSMODE==0
// code for Linear choice
.......
#endif 
#if VSSMODE==1
// code for Nonlinear choice
.......
#endif 

У вас может также быть подобный шаблон моделирования с многоточечной функцией записи, использующей блок Модели - ссылки. Пример следующие:

В вышеупомянутом примере fcln1, fcln2 и fcln3 направляются через Различную Подсистему с помощью блока Модели - ссылки в качестве вариантов.

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

  • Порты действия как Варианты

  • Варианты, содержащие порт Iterator с, генерируют условный набор препроцессора к ON

  • Модели с Инициализируют, Сброс, Оконечный, и функции Simulink

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

Рассмотрите модель Variant, содержащую Различный блок Subsystem. Если вы используете, Включают Подсистему как вариант для блока Subsystem Linear затем, другой блок Subsystem (Nonlinear) в Различной Подсистеме должен также быть, Включают Подсистему.

Эта модель моделирует и генерирует код на основе значения VSSMODE.

Отрывок сгенерированного кода как показано ниже.

step() {
#if VSSMODE==0
// code for Linear choice
.......
#elif VSSMODE==1
// code for Nonlinear choice
.......
#endif

Похожие темы