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

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

Можно задать условные уравнения при помощи операторов 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={xдля 1<= x<=1x2в противном случае 

Это уравнение, написанное в языке 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

Похожие темы