В этом примере показано, как реализовать если еще построение при помощи блоков Simulink, диаграмм Stateflow и блока MATLAB function.
if (u1 > u2)
{
y1 = u1;
}
else
{
y1 = u2;
}
Один метод, чтобы создать if-else оператор должен использовать блок switch от библиотеки Simulink> Signal Routing.
1. Открытая модель ex_if_else_SL в качестве примера.

Модель содержит блок switch с Критериями параметров блоков передачи первого входа u2~=0. Программное обеспечение выбирает u1 если u2 TRUE, в противном случае u2 передачи.
2. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.
Код, реализующий if-else построение находится в ex_if_else_SL_step функция в ex_if_else_SL.c:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_SL_step(void)
{
/* Switch: '<Root>/Switch' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
* RelationalOperator: '<Root>/Relational Operator'
*/
if (U.u1 > U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of Switch: '<Root>/Switch' */
}
1. Открытая модель ex_if_else_SF в качестве примера.

Модель содержит If-Else шаблон решения, который вы добавляете путем щелчка правой кнопкой в графике>, Добавляет Шаблон в Графике> Решение> Если еще.
2. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.
Код, реализующий if-else построение находится в ex_if_else_SF_step функция в ex_if_else_SF.c:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_SF_step(void)
{
/* Chart: '<Root>/Chart' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
/* If-Else */
if (U.u1 > U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of Chart: '<Root>/Chart' */
}
1. Открытая модель ex_if_else_ML в качестве примера.

2. Блок MATLAB function содержит эту функцию:
function y1 = fcn(u1, u2) if u1 > u2; y1 = u1; else y1 = u2; end
2. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.
Код, реализующий if-else построение находится в ex_if_else_ML_step функция в ex_if_else_ML.c:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_ML_step(void)
{
/* MATLAB Function: '<Root>/MATLAB Function' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
if (U.u1 > U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of MATLAB Function: '<Root>/MATLAB Function' */
}