Определите уравнения компонента
equationsExpression1==Expression2; end
equations начинает раздел уравнения в файле компонента; этот раздел отключен end ключевое слово. Цель раздела уравнения состоит в том, чтобы установить математические отношения среди переменных компонента, параметров, входных параметров, выходных параметров, время и производные времени каждой из этих сущностей. Все члены, объявленные в компоненте, доступны их именем в разделе уравнения.
Раздел уравнения файла Simscape™ выполняется в течение симуляции. Можно также задать уравнения, которые выполняются во время инициализации модели только, при помощи (Initial=true) атрибут. Для получения дополнительной информации смотрите Начальные уравнения.
Следующий синтаксис определяет простое уравнение.
equations Expression1 == Expression2; end
Оператор оператор уравнения. Это задает непрерывное математическое равенство между двумя объектами класса Expression1 == Expression2Expression. 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 может не быть сформирован со следующими операторами:
Матричная инверсия
Функции MATLAB, не перечисленные в Поддерживаемых Функциях
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 = 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
assert | delay | der | function | integ | intermediates | tablelookup | time