exponenta event banner

Использование условных выражений в уравнениях

Синтаксис оператора

Условные уравнения можно задать с помощью if заявления.

equations
  [...]
  if Expression
    [...]
  elseif Expression
    [...]
  else
    [...]
  end
  [...]
end

Каждый [...] может содержать одно или несколько выражений уравнений.

Можно гнездиться if операторы, например:

equations
  [...]
  if Expression
    [...]
    if Expression
       [...]
    else
    [...]
    end
  else
    [...]
  end
  [...]
end

Ограничения

  • Каждый if требует else.

  • Общее число выражений уравнений, их размерность и порядок должны быть одинаковыми для каждой ветви if-elseif-else заявление. Однако это правило не применяется к assert выражения, поскольку они не включены в число выражений для ветви.

Пример

Для компонента, где x и y объявлены как переменные 1x1, задайте следующее кусочное уравнение:

y = xfor  1 < = x < =  1x2otherwise

Это уравнение, написанное на языке Simscape™, будет выглядеть следующим образом:

equations
  if x >= -1 && x <= 1
    y == x;
  else
    y == x^2;
  end
end

Другой способ записать это уравнение на языке Simscape:

equations
  y == if x>=-1 && x<=1, x else x^2 end
end

Связанные темы