уравнения

Определите уравнения компонента

Синтаксис

equations
Expression1 == Expression2;
end

Описание

equations начинает раздел уравнения в файле компонента; этот раздел отключен ключевым словом end. Это выполняется в течение симуляции. Цель раздела уравнения состоит в том, чтобы установить математические отношения среди переменных компонента, параметров, входных параметров, выходных параметров, время и производные времени каждой из этих сущностей. Все участники, объявленные в компоненте, доступны их именем в разделе уравнения.

Следующий синтаксис определяет простое уравнение.

equations
Expression1 == Expression2;
end

Оператор Expression1 == Expression2 является оператором уравнения. Это задает непрерывное математическое равенство между двумя объектами класса Expression. Expression является любым допустимым выражением MATLAB®, которое не использует ни одного из операторов отношения: ==, <, >, <=, >=, ~=, &&, ||. Expression может быть создан из любого из идентификаторов, заданных в образцовом объявлении.

Раздел уравнения может содержать несколько операторов уравнения. Можно также задать условные уравнения при помощи операторов if можно следующим образом:

уравнения
если Выражение
ExpressionList
{elseif Выражение
ExpressionList}
еще
ExpressionList
конец
конец

Примечание

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

Можно объявить средние сроки в разделе intermediates или доменного файла компонента и затем использовать эти термины в любом разделе уравнений в том же файле компонента в компоненте составного объекта включения, или в компоненте, который имеет узлы того доменного типа.

Можно также задать средние сроки непосредственно в уравнениях при помощи операторов let можно следующим образом:

уравнения
пусть
declaration clause
\in
expression clause
конец
конец

Пункт объявления присваивает идентификатор или набор идентификаторов, на левой стороне знака "равно" (=) к выражению уравнения на правой стороне знака "равно":

  LetValue = EquationExpression

Пункт выражения задает осциллограф замены. Это запускает с ключевого слова in и может содержать одно или несколько выражений уравнения. Всеми выражениями, присвоенными идентификаторам в пункте объявления, заменяют в уравнения в пункте выражения во время парсинга.

Примечание

Ключевое слово end требуется в конце оператора let-in-end.

Следующие правила применяются к разделу уравнения:

  • EquationList является одним или несколькими объектами класса EquationExpression, разделенный запятой, точкой с запятой или новой строкой.

  • EquationExpression может быть одним из:

    • Expression

    • Условное выражение (оператор if-elseif-else)

    • Позвольте выражению (оператор let-in-end)

  • Expression является любым допустимым выражением MATLAB. Это может быть сформировано со следующими операторами:

  • В разделе уравнения Expression не может быть сформирован со следующими операторами:

  • Оператор colon может взять только константы или end как его операнды.

  • Все члены компонента доступны в разделе уравнения, но ни один не перезаписываем.

Следующие функции MATLAB могут использоваться в разделе уравнения. Таблица содержит дополнительные ограничения, которые принадлежат только разделу уравнения. Это также указывает, прерывиста ли функция. Если функция прерывиста, она вводит пересечение нулем, когда используется с одним или несколькими непрерывными операндами.

Все аргументы, которые задают размер или размерность, должны быть безразмерными константами или безразмерными параметрами времени компиляции.

Поддерживаемые функции

ИмяОграниченияПрерывистый
ones  
zeros  
cat  
horzcat  
vertcat  
length  
ndims  
numel  
size  
isempty  
isequal Возможно, если аргументы действительны и имеют тот же размер и соразмерные модули
isinf Да
isfinite Да
isnan Да
plus  
uplus  
minus  
uminus  
mtimes  
times  
mpower  
power  
mldivideНематричный знаменатель 
mrdivideНематричный знаменатель 
ldivide  
rdivide  
mod Да
sum  
prod  
floor Да
ceil Да
fix Да
round Да
eqНе используйте с непрерывными переменными 
neНе используйте с непрерывными переменными 
lt  
gt  
le  
ge  
and Да
or Да
logical Да
sin  
cos  
tan  
asin  
acos  
atan  
atan2  
log  
log10  
sinh  
cosh  
tanh  
exp  
sqrt  
abs Да
sign Да
any Да
all Да
min Да
max Да
double  
int32 Да
uint32 Да
repmat  
reshapeРасширенная пустая размерность не поддержана 
dot  
cross  
diffВ двух перегрузках аргумента верхняя граница на втором аргументе равняется 4, из-за ограничения Simscape™ 

Примеры

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

equations
  y == x^2;
end

Для того же компонента задайте следующее кусочное уравнение:

Это уравнение, написанное в языке Simscape, было бы похоже:

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

Если функция имеет несколько возвращаемых значений, используйте ее в операторе let, чтобы получить доступ к его значениям. Например:

equations
  let 
    [m, i] = min(a);
  in
    x == m;
    y == i;
  end
end

Представленный в R2009a