equations

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

Синтаксис

equations
   Expression1 == Expression2;
end

Описание

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

Раздел уравнения файла Simscape™ выполняется в течение симуляции. Можно также задать уравнения, которые выполняются во время инициализации модели только, при помощи (Initial=true) атрибут. Для получения дополнительной информации смотрите Начальные уравнения.

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

equations
   Expression1 == Expression2;
end

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

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

equations
   if Expression 
       EquationList 
   { elseif Expression 
       EquationList } 
   else 
       EquationList 
   end
end

Примечание

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

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

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

equations
   let 
      declaration clause
   in 
      expression clause 
   end 
end

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

  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 

Начальные уравнения

(Initial=true) атрибут позволяет вам задать уравнения, которые выполняются во время инициализации модели только:

equations (Initial=true)
   Expression1 == Expression2;
end

Значение по умолчанию Initial атрибутом для уравнений является false, поэтому можно не использовать этот атрибут при объявлении регулярных уравнений.

Для получения дополнительной информации о том, когда, и как задать начальные уравнения, смотрите Начальные уравнения.

Примеры

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

equations
  y == x^2;
end

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

y={xдля 1<= x<=1x2в противном случае 

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