Skip to Main Content Skip to Search
Product Documentation

equations - Define component equations

Syntax

equations Expression1 == Expression2; end

Description

equations begins the equation section in a component file; this section is terminated by an end keyword. It is executed throughout the simulation. The purpose of the equation section is to establish the mathematical relationships among a component's variables, parameters, inputs, outputs, time and the time derivatives of each of these entities. All members declared in the component are available by their name in the equation section.

The following syntax defines a simple equation.

equations
Expression1 == Expression2;
end

The statement Expression1 == Expression2 is an equation statement. It specifies continuous mathematical equality between two objects of class Expression. An Expression is any valid MATLAB expression that does not use any of the relational operators: ==, <, >, <=, >=, ~=, &&, ||. Expression may be constructed from any of the identifiers defined in the model declaration.

The equation section may contain multiple equation statements. You can also specify conditional equations by using if statements as follows:

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

You can define intermediate terms and use them in equations by using let statements as follows:

equations
let
declaration clause
in
expression clause
end
end

The declaration clause assigns an identifier, or set of identifiers, on the left-hand side of the equal sign (=) to an equation expression on the right-hand side of the equal sign:

  LetValue = EquationExpression

The expression clause defines the scope of the substitution. It starts with the keyword in, and may contain one or more equation expressions. All the expressions assigned to the identifiers in the declaration clause are substituted into the equations in the expression clause during parsing.

The following rules apply to the equation section:

The following MATLAB functions can be used in the equation section. The table contains additional restrictions that pertain only to the equation section. It also indicates whether a function is discontinuous. If the function is discontinuous, it introduces a zero-crossing when used with one or more continuous operands.

Supported Functions

NameRestrictionsDiscontinuous
plus  
uplus  
minus  
uminus  
mtimes  
times  
mpower  
power  
mldivideNonmatrix denominator 
mrdivideNonmatrix denominator 
ldivide  
rdivide  
eqDo not use with continuous variables 
neDo not use with continuous variables 
lt  
gt  
le  
ge  
and Yes
or Yes
sin  
cos  
tan  
asin  
acos  
atan  
atan2  
log  
log10  
sinh  
cosh  
tanh  
exp  
sqrtFor negative numbers, calculated as . For example, sqrt(–1) = –1. 
abs Yes
logical Yes
sign Yes

Examples

For a component where x and y are declared as 1x1 variables, specify an equation of the form y = x2:

equations
  y == x^2;
end

For the same component, specify the following piecewise equation:

This equation, written in the Simscape language, would look like:

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

See Also

assert

delay

der

tablelookup

time

Defining Component Equations

  


Related Products & Applications

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.

 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS